2016-12-16 5 views
0

Мне нужно изменить цвет фона формы программно, но я не знаю как. Вот то, что я сделал до сих пор:Установить цвет фона формы программно

<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

Я не знаю, что именно вы пытаетесь сделать, но это может вам помочь.

((GradientDrawable)yourView.getBackground()).setColor(yourColor); 
+0

Я попытался это, установить это на фоне всех LinearLayout, а не только круг – student

0

Попробуйте это:

findViewById(R.id.linearlayout_mediagalleryicon) 
    .setBackgroundResource(R.drawable.circle_visual_feedback); 

Это меняет фон вашего LinearLayout к circle_visual_feedback.

0

view.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

SRC_IN означает, что он должен применяться только цвет к вашему кругу

+0

я получаю NullPointerException, когда я использую эту линию кода с моим объектом ImageView. Я применил его к linearlayout, но ничего не изменилось. – student

+0

Thats, потому что ваш ImageView не имеет фона, применяемого к нему. Могу ли я спросить, почему вы не просто корректируете цвет в xml вместо программного? Это динамично? – Dom

+0

Да, это динамично – student

Смежные вопросы