开发者

Android include shape in xml

开发者 https://www.devze.com 2023-03-25 03:35 出处:网络
Hi have shape and am trying to include this in my layout but it doesn\'t show? This is my shape xml \"damage.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

精彩评论

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

关注公众号