以下XML生成我正在寻找的大型粗体文本。
<TextView
android:layout_width="match_parent"
android:layout_height="44dp"
android:background="#000000"
android:gravity="center"
android:text="Review"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ffffff"
android:textStyle="bold" />
我认为这个Java会做同样的事情,但我会得到非粗体,默认大小的文本。是什么给了什么?
LinearLayout container = new LinearLayout(this);
container.setOrientation(LinearLayout.VERTICAL);
container.setBackgroundColor(Style.backgroundColor);
TextView header = new TextView(this);
header.setText("Review");
header.setBackgroundColor(Color.BLACK);
header.setTextColor(Color.WHITE);
header.setGravity(Gravity.CENTER);
header.setTypeface(Typeface.DEFAULT_BOLD);
header.setTextAppearance(this, android.R.attr.textAppearanceLarge);
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 44, getResources().getDisplayMetrics());
container.addView(header, LayoutParams.MATCH_PARENT, (int)px);
(在您回答“Just use XML”之前,我不能。这需要很好地打包在jar中。)
答案 0 :(得分:0)
好吧,使用视图的自定义实现“几乎”与使用XML代码相同,但是当您尝试通过Java完成全部操作来扩展自定义视图时,Android会出现一些“错误”;我知道这是肯定的,因为我之前尝试过,并且在XML中使用我的布局工作正常并且使用我的自定义java布局只是没有加载好... 换句话说,几乎没有区别,但你必须写下更多的代码,你的应用程序容易受到这样的小错误。 这是我这次问过的帖子的链接: Android Developers Google Group
注意:您可以将您的proyect打包到jar文件,但Android应用程序使用APK进行安装。我不确定你是否可以安装jar app文件,但我认为不可能。
答案 1 :(得分:0)
尝试使用替代构造函数:
TextView header = new TextView(this, null, android.R.attr.textAppearanceLarge);
请勿在稍后致电setTextAppearance
。我的猜测是textAppearanceLarge
会覆盖您事先设置的粗体设置。