开发者

Android include shape in xml

Hi have shape and am trying to include this in my layout but it doesn't show?

This is my shape xml "damage.xml"

<shape xmlns:android="http://schemas.android.com/apk/res/android"
shape="rectangle">
<solid color="#ff0000" />
<stroke width="3dp" color="#ff0000" />

And this is my I thought I needed to include the Shape in the layout.

<?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" /&开发者_运维知识库gt;

        <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>

However nothing is drawn? Where am I going wrong. Secondly is it correct to set the width and heoght of the shape in the View or should I be doing it in the damage.xml? For example

<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" />

Here the compiler complains about wrap_content.

Any help would be greatly appreciated.


Try changing color="#ff0000" to android:color="#ff0000". That should cause the rectangle to be visible. Once you do that, you will find that a red rectangle shows up, but it fills the parent view vertically. That is because you used android:layout_height="wrap_content", even though the rectangle does not have any fixed height. I would fix that by using some other value for android:layout_height in your layout.

Also, it appears that you have placed damage.xml in the layout directory. Since a shape is a drawable, you should place it in the drawable directory, and reference it as @layout/damage in your layout.

Update:

Using the following code in damage.xml causes the rectangle to show up fine for me.

<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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜