如何使用此特定属性以编程方式创建 TextView?
Posted
技术标签:
【中文标题】如何使用此特定属性以编程方式创建 TextView?【英文标题】:How create TextView programatically with this specifics Attributes? 【发布时间】:2016-11-11 17:15:00 【问题描述】:我目前正在这样创建 TextView:
LinearLayout myLayout = (LinearLayout) activity.findViewById(R.id.ll1);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
for(int l=0; l<4; l++)
pairs[l] = new TextView(context);
pairs[l].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
pairs[l].setLayoutParams(lp);
pairs[l].setId(l);
pairs[l].setText("asd");
myLayout.addView(pairs[l]);
现在我想将此属性设置为所有 TextView:
FontFamily:草书 SetTextSize 不是 sp 而是 dp(已解决) SetGravity:central_horizontal(已解决)当我以编程方式创建 TextView 时,我找不到设置这些属性的方法,我该怎么做?
【问题讨论】:
使用布局参数来调整这些 我这样做是为了调整重力和高度(wrap_content),但是最后两个属性怎么样? 【参考方案1】:可以使用 setTextSize(TypedValue.COMPLEX_UNIT_DIP, <float>)
设置 dp 中的文本大小 - 请参阅文档 [此处](https://developer.android.com/reference/android/widget/TextView.html#setTextSize(int, float))。
至于字体系列,恐怕我不知道 - 希望其他人可以帮助你:)
【讨论】:
【参考方案2】:要更改 TextView 的字体系列,请使用 setTypeface
例如:
Typeface tf = Typeface.create("cursive", Typeface.NORMAL);
for(int l=0; l<4; l++)
pairs[l] = new TextView(context);
pairs[l].setTypeface(tf);
...
另外,这可能感兴趣:How to change fontFamily of TextView in Android
【讨论】:
【参考方案3】:您可以使用 Typeface 对象设置字体。
TextView tv = new TextView(context);
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/filename.ttf");
tv.setTypeface(face);
将字体放入项目的 assets 文件夹中。
【讨论】:
不能使用这个,因为我没有“草书”的 .TFF 文件以上是关于如何使用此特定属性以编程方式创建 TextView?的主要内容,如果未能解决你的问题,请参考以下文章
Android 编程:如何以网格方式以编程方式创建各种视图类型