你有形状,我试图将其包含在我的布局中,但它没有显示?
这是我的形状xml“damage.xml”
<shape xmlns:android="http://schemas.android.com/apk/res/android"
shape="rectangle">
<solid color="#ff0000" />
<stroke width="3dp" color="#ff0000" />
这是我的想法我需要在布局中包含Shape。
<?xml version="1.0" encoding="utf-8"?>
<View android:id="@+id/damage" android:background="@layout/damage"
android:layout_width="5dip" android:layout_height="wrap_content">
</View>
<ImageView android:id="@+id/icon" android:layout_width="60px"
android:layout_height="60px" android:layout_marginRight="6dip"
android:src="@drawable/placeholder" />
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:padding="6dip">
<TextView android:layout_width="fill_parent" android:id="@+id/title"
android:layout_height="wrap_content" android:text="Item Name"
android:textStyle="bold" android:singleLine="true" android:textSize="16sp" />
<ImageView android:id="@+id/rating" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/rating_five" />
<LinearLayout android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content" android:id="@+id/range"
android:layout_height="wrap_content" android:text="Range"
android:textStyle="bold" android:singleLine="true" android:textSize="16sp"
android:paddingRight="5dip" />
<TextView android:layout_width="fill_parent" android:id="@+id/condition"
android:layout_height="wrap_content" android:text="Condition"
android:textStyle="bold" android:singleLine="true" android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
然而什么都没画出来?我哪里错了。其次,在视图中设置形状的宽度和高度是正确的,还是应该在damage.xml中进行?例如
<shape xmlns:android="http://schemas.android.com/apk/res/android"
shape="rectangle">
<solid color="#ff0000" />
<size android:height="wrap_content" />
<size android:width="5dip" />
<stroke width="3dp" color="#ff0000" />
这里编译器抱怨wrap_content。
非常感谢任何帮助。
答案 0 :(得分:1)
尝试将color="#ff0000"
更改为android:color="#ff0000"
。这应该导致矩形可见。执行此操作后,您会发现红色矩形显示,但它会垂直填充父视图。这是因为您使用了android:layout_height="wrap_content"
,即使矩形没有任何固定高度。我会通过在布局中使用android:layout_height
的其他值来解决这个问题。
此外,您似乎已将damage.xml放置在布局目录中。由于形状是可绘制的,因此您应将其放在drawable目录中,并在布局中将其引用为@layout/damage
。
<强>更新强>
在damage.xml中使用以下代码会导致矩形显示正常。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#f0f000" />
<stroke android:width="3dp" android:color="#ff0000" />
</shape>