Удалить фон 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>
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: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на ваш взгляд.
Comments