我创建了一个自定义视图,<shape>
该视图在视图xml中使用2作为背景。现在,我已经<solid color=""/>
对形状的进行了硬编码,但是我想将颜色作为参数从代码传递到自定义视图,再传递给形状。
我该如何实现?我想将颜色引用传递给代码@+id/rectangle
和@+id/triangle
代码。
形状:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1dp"/>
<solid android:color="@color/giddyologyOrange"/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<size android:height="60dp"
/>
<stroke
android:width="1dp"
android:color="#C95800"
/>
</shape>
看法:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rectangle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rectangle"
android:orientation="horizontal"
android:padding="5dp">
<ImageView
android:id="@+id/iconImageView"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center_vertical|left"
android:contentDescription="Icon"
android:src="@drawable/iconplaceholder"
android:scaleType="fitCenter"/>
<View
android:id="@+id/spaceView"
android:layout_height="match_parent"
android:layout_width="10dip"/>
<TextView
android:id="@+id/labelTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:textColor="@color/white"
android:gravity="center|left"
android:textSize="16dip"
android:maxWidth="150dip"
android:text="This is a really long text that should wrap"/>
</LinearLayout>
<View
android:id="@+id/triangle"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="-1dp"
android:background="@drawable/triangle"
android:rotation="180"/>
</LinearLayout>
我最终使用了彩色滤光片对背景图像进行了着色。
rectangle.getBackground().setColorFilter(color, PorterDuff.Mode.SRC);
由于颜色来自我的模型对象,因此这似乎是一个非常容易且可维护的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句