我是Android新手,我遇到了这个问题:形状drawable无法应用于TextView。 我的textview中的java代码如下:
shape = getResources().getDrawable(R.drawable.shape_tag_round_corner);
this.setBackgroundDrawable(shape);
this.setBackgroundColor(color);
this.setText(roleName);
this.setGravity(Gravity.CENTER);
XML形状:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp"></corners>
<padding
android:left="5dp"
android:top="0dp"
android:right="5dp"
android:bottom="0dp"
/>
</shape>
最后,TextView没有得到代码中设置的形状和颜色,为什么?
答案 0 :(得分:0)
你只能有一个drawable作为背景。
首先设置形状(透明),然后用颜色替换它。
如果您想要彩色形状,请使用xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<corners android:radius="5dp"></corners>
<padding
android:left="5dp"
android:top="0dp"
android:right="5dp"
android:bottom="0dp"
/>
</shape>
然后:
shape = getResources().getDrawable(R.drawable.shape_tag_round_corner);
shape.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.DST_ATOP ));
this.setBackgroundDrawable(shape);
答案 1 :(得分:0)
你可以在android中拥有textviews的形状,转到xml文件并查找初始代码行 它们看起来像这样
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ScreenOnOff" >
这里相对布局是一种可绘制视图,并尝试在xml文件中 gravity 而不是通过java。您的可绘制问题将在xml本身中解决。希望这有一些帮助