我想创建一个基于ImageView
的自定义视图,以创建一个小部件,其中可绘制的源是相机,背景是带有勾号的矩形:
问题是:
android:background
进行设置,则会在图像后面留下刻度线。 以下是我的xml
文件:
当前边框xml可绘制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<stroke
android:width="2dip"
android:color="@color/bg_black"/>
<padding
android:left="3dp"
android:right="3dp"
android:top="3dp"
android:bottom="3dp"
/>
</shape>
</item>
<item >
<layer-list >
<item>
<shape
android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/border_yellow"/>
<size
android:width="37dp"
android:height="37dp"/>
<padding
android:bottom="3dp"
android:left="3dp"
android:right="3dp"
android:top="3dp"/>
</shape>
</item>
<item android:drawable="@drawable/ic_tick"/>
</layer-list>
</item>
</layer-list>
图像按钮xml布局
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/product1"
android:background="@drawable/toggle_rectangle_check"/>
感谢您的时间。
答案 0 :(得分:1)
我不确定这是否是您正在寻找的那种解决方案,但我不相信其中包含样式的xml文件,我相信最好有一个布局文件定义您的自定义Widget的布局,像这样
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/customWidgetBox"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/customCheckmark"
android:gravity="bottom|right" />
</LinearLayout>
对于drawable文件夹,您需要添加customCheckmark.xml和customWidgetBox.xml
customCheckmark.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <item android:drawable="@drawable/check_mark"> <stroke android:width="3dp" android:color="@color/blue_button_border" /> </item> </shape>
customWidgetBox.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <item android:drawable="@drawable/camera"> <stroke android:width="3dp" android:color="@color/blue_button_border" /> </item> </shape>
不确定此代码是否完全符合您的要求,但它可以帮助您入门,因为这绝对是实现目标的方法! :)
一些可能对示例感兴趣的链接:
Set border and background color of textView
Drawable Resource, Android API