我需要以编程方式更改形状的背景颜色,但我不知道如何。这是我到目前为止所做的:
<LinearLayout
android:id="@+id/linearlayout_mediagalleryicon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/circle_visual_feedback_selector"
android:gravity="center"
android:padding="10dp"
android:clickable="true">
<ImageView
android:id="@+id/imageview_mediagalleryicon"
android:layout_width="35dp"
android:layout_height="35dp" />
</LinearLayout>
circle_visual_feedback_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/circle_visual_feedback" />
</selector>
circle_visual_feedback.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#40808080"/>
<padding android:bottom="10dp" android:right="10dp" android:top="10dp" android:left="10dp"></padding>
</shape>
答案 0 :(得分:0)
我不知道你到底想要做什么,但这可能对你有帮助。
((GradientDrawable)yourView.getBackground()).setColor(yourColor);
答案 1 :(得分:0)
试试这个:
findViewById(R.id.linearlayout_mediagalleryicon)
.setBackgroundResource(R.drawable.circle_visual_feedback);
这会将 LinearLayout 的背景更改为 circle_visual_feedback 。
答案 2 :(得分:0)
view.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
SRC_IN表示只应将颜色应用于您的圈子