为什么shape不能应用于android中的textview

时间:2014-10-26 15:01:15

标签: java android textview

我是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没有得到代码中设置的形状和颜色,为什么?

2 个答案:

答案 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本身中解决。希望这有一些帮助