Tôi đã cố gắng sử dụng phông chữ tùy chỉnh trong Android Studio như chúng ta đã làm trong Eclipse. Nhưng thật không may, không thể tìm ra nơi để đặt thư mục 'tài sản'!
Tôi đã cố gắng sử dụng phông chữ tùy chỉnh trong Android Studio như chúng ta đã làm trong Eclipse. Nhưng thật không may, không thể tìm ra nơi để đặt thư mục 'tài sản'!
Câu trả lời:
Cập nhật 2020:
Tạo một thư mục có tên phông chữ trong thư mục res và sao chép phông chữ của bạn
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Để sử dụng theo chương trình:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Chọn Tệp> Mới> Thư mục> Thư mục Tài sản
Nhấp vào kết thúc
Nhấp chuột phải vào tài sản và tạo một thư mục gọi là phông chữ
Đặt tệp phông chữ của bạn trong tài sản > phông chữ
Sử dụng mã dưới đây để thay đổi phông chữ của textView của bạn
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Có nhiều cách để đặt họ phông chữ tùy chỉnh trên trường và tôi đang sử dụng như thế bên dưới.
Để thêm phông chữ làm tài nguyên, hãy thực hiện các bước sau trong Android Studio:
1) Nhấp chuột phải vào thư mục res và chuyển đến New> thư mục tài nguyên Android. Cửa sổ Thư mục tài nguyên mới xuất hiện.
2) Trong danh sách Loại tài nguyên, chọn phông chữ, rồi bấm OK.
Lưu ý: Tên của thư mục tài nguyên phải là phông chữ.
3) Thêm tập tin phông chữ của bạn trong thư mục phông chữ.
Thêm phông chữ trong chế độ xem mong muốn trong tệp xml của bạn:
Lưu ý: Nhưng bạn cần những điều sau đây:
Android Studio trên 3.0 hoàng yến.
Hoạt động của bạn mở rộng AppCompatActivity.
Cập nhật tệp Gradle của bạn như thế:
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildtoolsVersion
trên 26 và targetSdkVersion
yêu cầu tối thiểu 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Tôi nghĩ thay vì tải xuống tệp .ttf, chúng ta có thể sử dụng phông chữ của Google. Nó rất dễ thực hiện. chỉ có bạn phải làm theo các bước này. bước 1) Mở layout.xml của dự án của bạn và họ phông chữ chọn của chế độ xem văn bản trong các thuộc tính (để chụp ảnh màn hình tham chiếu được đính kèm)
Bước 2) Họ phông chữ chọn Thêm phông chữ .. tùy chọn nếu phông chữ của bạn không có. sau đó bạn sẽ thấy một cửa sổ mới sẽ mở ra, ở đó bạn có thể nhập phông chữ yêu cầu của bạn và chọn phông chữ mong muốn từ danh sách đó, ví dụ như) Thông thường, đậm, nghiêng, v.v. như trong hình bên dưới.
Bước 3) Sau đó, bạn sẽ quan sát một thư mục phông chữ sẽ được tạo tự động trong thư mục / res có tệp xml phông chữ đã chọn của bạn.
Sau đó, bạn có thể trực tiếp sử dụng họ phông chữ này trong xml như
android:fontFamily="@font/josefin_sans_bold"
hoặc pro về mặt ngữ pháp bạn có thể đạt được điều này bằng cách sử dụng
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Xin chào ở đây, chúng tôi có một cách tốt hơn để áp dụng phông chữ trên EditTexts và TextViews trên Android cùng một lúc và áp dụng nó trong toàn bộ dự án.
Trước hết bạn cần tạo thư mục phông chữ. Đây là các bước.
1: Chuyển đến (thư mục dự án) Sau đó, ứng dụng> src> chính
2: Tạo các thư mục có tên 'tài sản / phông chữ' vào thư mục chính.
3: Đặt phông chữ của bạn vào thư mục phông chữ. Ở đây tôi có 'MavenPro-Thường xuyên.ttf'
Dưới đây là các bước để áp dụng phông chữ tùy chỉnh trên EditText và sử dụng phương pháp này bạn có thể áp dụng phông chữ trên mỗi đầu vào.
1: Tạo một lớp MyEditText (tên ưa thích của bạn ...)
2: mở rộng EditText
3: Áp dụng phông chữ của bạn
Đây là mã Ví dụ;
public class MyEditText extends EditText {
public MyEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyEditText(Context context) {
super(context);
init();
}
private void init() {
if (!isInEditMode()) {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/MavenPro-Regular.ttf");
setTypeface(tf);
}
}
}
Và ở đây là mã làm thế nào để sử dụng nó.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
Hoặc trong tệp xml của bạn
<MyEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="#fff"
android:textSize="16dp"
android:id="@+id/editText"
/>
Với phông chữ Thư viện hỗ trợ 26.0 (và Android O) có thể được tải dễ dàng từ tài nguyên với:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Thêm thông tin có thể được tìm thấy ở đây.
Tôi muốn thêm câu trả lời của mình cho Android-O và Android Studio 2.4
Tạo thư mục được gọi là phông chữ trong thư mục res . Tải xuống các phông chữ khác nhau mà bạn muốn thêm vào ví dụ về phông chữ dự án của bạn
Bên trong họ phông chữ người dùng xml của bạn
thí dụ :
<TextView
android:fontFamily="@font/indie_flower"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="@string/sample_text" />
3.Nếu bạn muốn nó theo cách lập trình, hãy sử dụng mã sau
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
để biết thêm thông tin, hãy theo liên kết đến bài đăng trên blog của tôi Kiểu phông chữ cho Android với Android Studio 2.4
Theo tính năng mới có sẵn trong Android O, tài nguyên phông chữ trong XML có sẵn như là tính năng mới.
Để thêm phông chữ làm tài nguyên, hãy thực hiện các bước sau trong Android Studio:
1) Nhấp chuột phải vào thư mục res và chuyển đến New> thư mục tài nguyên Android . Cửa sổ Thư mục tài nguyên mới xuất hiện.
2) Trong danh sách Loại tài nguyên, chọn phông chữ , rồi bấm OK.
Lưu ý: Tên của thư mục tài nguyên phải là phông chữ.
3) Thêm tập tin phông chữ của bạn trong thư mục phông chữ.
Bạn có thể truy cập các tài nguyên phông chữ với sự trợ giúp của một loại tài nguyên mới, phông chữ. Ví dụ: để truy cập tài nguyên phông chữ, hãy sử dụng @ font / myfont hoặc R.font.myfont.
ví dụ. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Bạn có thể sử dụng dễ dàng và đơn giản thư viện bên thứ ba EasyFonts để đặt nhiều phông chữ tùy chỉnh choTextView
. Bằng cách sử dụng thư viện này, bạn không phải lo lắng về việc tải xuống và thêm phông chữ vào thư mục tài sản / phông chữ. Cũng về việc tạo đối tượng Kiểu chữ. Bạn cũng sẽ được miễn phí trong việc tạo thư mục tài sản.
Đơn giản:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Có nhiều loại phông chữ được cung cấp bởi thư viện này.
Đầu tiên thêm tập tin font.ttf trên Thư mục phông chữ. Sau đó, thêm dòng này trong phương thức onCreate
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
Và đây là xml của tôi
<TextView
android:id="@+id/idtext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="center"
android:text="My Text"
android:textColor="#000"
android:textSize="10sp"
/>
Để gán phông chữ cho textView:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
your_font_name bao gồm phần mở rộng phông chữ.
Nếu bạn rất mới với Android như tôi thì điều này có thể hơi khó. Hãy chắc chắn rằng bạn gọi:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
phương thức trong một phương thức như onCreate
.
Android 8.0 (API 26) đã giới thiệu các tính năng mới liên quan đến phông chữ.
1) Phông chữ có thể được sử dụng làm tài nguyên.
2) Phông chữ có thể tải xuống.
Nếu bạn muốn sử dụng phông chữ bên ngoài trong ứng dụng Android của mình, bạn có thể bao gồm các tệp phông chữ trong apk hoặc định cấu hình phông chữ có thể tải xuống.
Bao gồm các tệp phông chữ trong APK : Bạn có thể tải xuống các tệp phông chữ, lưu chúng trong bộ lọc res / font, xác định họ phông chữ và sử dụng họ phông chữ theo kiểu.
Để biết thêm chi tiết về cách sử dụng phông chữ tùy chỉnh làm tài nguyên, hãy xem http://www.zoftino.com/android-USE-custom-fonts
Định cấu hình phông chữ có thể tải xuống : Xác định phông chữ bằng cách cung cấp chi tiết nhà cung cấp phông chữ, thêm chứng chỉ nhà cung cấp phông chữ và sử dụng phông chữ theo kiểu.
Để biết thêm chi tiết về các phông chữ có thể tải xuống, hãy xem http://www.zoftino.com/doading-fonts-android
Đầu tiên tạo assets
thư mục sau đó tạo fonts
thư mục trong đó.
Sau đó, bạn có thể đặt font
từ assets
hoặc directory
thích dưới đây:
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.custom);
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf");
tv.setTypeface(face);
File font = new File(Environment.getExternalStorageDirectory(), "MgOpenCosmeticaBold.ttf");
if (font.exists()) {
tv = (TextView) findViewById(R.id.file);
face = Typeface.createFromFile(font);
tv.setTypeface(face);
} else {
findViewById(R.id.filerow).setVisibility(View.GONE);
}
}
}
Bây giờ có rất nhiều cách để áp dụng phông chữ, một trong những cách dễ nhất là như thế này, 1) Nhấp chuột phải vào thư mục res vào New> thư mục tài nguyên Android.
2) Từ danh sách loại Tài nguyên, chọn phông chữ, rồi bấm OK.
3) Đặt các tập tin phông chữ của bạn trong thư mục phông chữ.
Thêm phông chữ của bạn vào thư mục tài sản trong ứng dụng / src / main / nội dung tạo một văn bản xem tùy chỉnh như thế này:
class CustomLightTextView : TextView {
constructor(context: Context) : super(context){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet): super(context, attrs){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
attachFont(context)
}
fun attachFont(context: Context) {
this.setTypeface(FontCache.getInstance().getLightFont(context))
}
}
Thêm FontCache: Để bạn không phải tạo kiểu chữ lặp đi lặp lại như:
class FontCache private constructor(){
val fontMap = HashMap<String,Typeface>()
companion object {
private var mInstance : FontCache?=null
fun getInstance():FontCache = mInstance?: synchronized(this){
return mInstance?:FontCache().also { mInstance=it }
}
}
fun getLightFont(context: Context):Typeface?{
if(!fontMap.containsKey("light")){
Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf");
fontMap.put("light",Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf"))
}
return fontMap.get("light")
}
}
Và bạn đã hoàn thành!
PSFrom android O, bạn có thể trực tiếp thêm phông chữ.
đặt phông chữ vào thư mục tài sản, sau đó áp dụng phông chữ: '' phông chữ của bạn
Dành cho độc giả mới
Bạn có thể sử dụng thư viện này Xem phông chữ tùy chỉnh Gloxey
phụ thuộc lớp
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Sử dụng như thế nào?
Tạo tài sản thư mục -> phông chữ . Sao chép phông chữ của bạn vào thư mục phông chữ .
Sử dụng ứng dụng thuộc tính: font_name = "font_name_opes" để áp dụng phông chữ trên chế độ xem.
Thí dụ
<!--Font Names in srings.xml-->
<string name="aadhunik">aadhunik.ttf</string>
<string name="kung_fool">kungfool.ttf</string>
<string name="skrova">skrova.otf</string>
<string name="painting_in_the_sun_light">painting_in_the_sun_light.ttf</string>
<!--Include views in layout.xml-->
<io.gloxey.cfv.CFTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Aadhunik"
android:textColor="#ff00"
android:textSize="40sp"
app:font_name="@string/aadhunik" />
<io.gloxey.cfv.CFButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Kung Fool"
android:textColor="#154748"
app:font_name="@string/kung_fool" />
<io.gloxey.cfv.CFEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello world"
android:textSize="30sp"
app:font_name="@string/skrova" />
<io.gloxey.cfv.CFCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Painting In The Sun Light"
android:textSize="30sp"
app:font_name="@string/painting_in_the_sun_light" />