Удалить фон drawable программно в Android



Я хочу удалить фон drawable (@drawable/bg) программно. Есть ли способ сделать это?



В настоящее время у меня есть следующий XML в моем макете:



<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/widget29"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/bg">

</RelativeLayout>
565   11  

11 ответов:

попробуй такое

RelativeLayout relative = (RelativeLayout) findViewById(R.id.widget29);
relative.setBackgroundResource(0);

Проверьте функции setBackground в RelativeLayout documentation

setBackgroundResource(0) Это лучший вариант. Из документация:

установить фон для данного ресурса. Ресурс должен относиться к Рисуемый объект или 0 для удаления фона.

он работает везде, потому что это начиная с API 1.

setBackground был добавлен намного позже, в API 16, поэтому он не будет работать, если ваш minSdkVersion ниже 16.

это помогло мне удалить цвет фона, надеюсь, что это помогает кто-то. setBackgroundColor(Color.TRANSPARENT)

попробуйте этот код:

imgView.setImageResource(android.R.color.transparent); 

также это работает:

imgView.setImageResource(0); 

но будьте осторожны, это не работает:

imgView.setImageResource(null); 

Я пробую это в android 4+:

 view.setBackgroundDrawable(0);

во-первых, вы должны написать

 android:visibility="invisible" <!--or set VISIBLE-->

затем использовать это, чтобы показать его

 myimage.setVisibility(SHOW);//HIDE                                       

лучшая производительность по этому методу:

imageview.setBackgroundResource(R.drawable.location_light_green);

использовать это.

использовать setBackgroundColor(Color.TRANSPARENT) чтобы установить фон как прозрачный, или использовать setBackgroundColor(0). Здесь Color.TRANSPARENT является атрибутом по умолчанию из класса color. Он будет работать нормально.

У меня есть сценарий, и я попробовал все ответы сверху, но всегда новое изображение было создано поверх старого. Решение, которое сработало для меня:

imageView.setImageResource(R.drawable.image);

в дополнение к отличным ответам, Если вы хотите достичь этого с помощью xml, то вы можете добавить:

android:background="@android:color/transparent

на ваш взгляд.

эта работа для меня:

yourview.setBackground(null);

Comments

    Ничего не найдено.