Untuk mengatur Latar Belakang:
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
Apakah cara terbaik untuk melakukannya?
java
android
background
drawable
Chad Bingham
sumber
sumber
remoteViews.setInt(R.id.btn_start,"setBackgroundResource", R.drawable.ic_button_start);
Jawaban:
layout.setBackgroundResource(R.drawable.ready);
benar.Cara lain untuk mencapainya adalah dengan menggunakan yang berikut:
Tapi saya pikir masalahnya terjadi karena Anda mencoba memuat gambar besar.
Berikut ini adalah tutorial yang bagus bagaimana memuat bitmap besar.
UPDATE:
getDrawable (int) yang ditinggalkan dalam API level 22
getDrawable(int )
sekarang ditinggalkan dalam API level 22. Anda harus menggunakan kode berikut dari pustaka dukungan sebagai gantinya:Jika Anda merujuk ke kode sumber ContextCompat.getDrawable , itu memberi Anda sesuatu seperti ini:
Lebih detail tentang ContextCompat
Pada API 22, Anda harus menggunakan
getDrawable(int, Theme)
metode alih-alih getDrawable (int).UPDATE:
Jika Anda menggunakan perpustakaan dukungan v4, berikut ini akan cukup untuk semua versi.
Anda perlu menambahkan yang berikut ini di build.gradle aplikasi Anda
Atau menggunakan ResourceCompat, dalam API apa pun seperti di bawah ini:
sumber
if(buttonBackground.equals(R.drawable.myDrawable))
manaDrawable buttonBackground = myButton.getBackground();
saya mendapatkan kesalahan ini: snag.gy/weYgA.jpgmyActivity.getTheme()
untuk versi terbaru dari metode, daripada parameter nol:myView.setBackground( getResources().getDrawable(R.drawable.my_background, activity.getTheme()));
AppCompatResources.getDrawable(this.getContext(), resId)
, Google sudah menerapkannya diAppCompat*
widget / tampilan, misalnya:android.support.v7.widget.AppCompatCheckBox
Coba ini:
dan untuk API 16 <:
sumber
getResources().getDrawable()
. Kode yang benarlayout.setBackgroundResource(R.drawable.ready);
sama seperti OP yang digunakan. Masalahnya di sini berasal dari ukuran bitmap.sekarang, di dalam fungsi apa pun seperti onCreate, onResume
sumber
Anda juga dapat mengatur latar belakang Gambar apa pun:
sumber
(.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
kode bagian dalamSaya menggunakan minSdkVersion 16 dan targetSdkVersion 23.
Berikut ini berfungsi untuk saya, ia menggunakan
Alih-alih menggunakan:
Sebaliknya gunakan:
getActivity()
digunakan dalam fragmen, jika memanggil dari aktivitas yang digunakanthis
.sumber
Jika latar belakang Anda berada di folder yang dapat digambar sekarang coba pindahkan gambar dari folder drawable ke drawable-nodpi di proyek Anda. Ini bekerja untuk saya, sepertinya gambar-gambar itu diubah oleh mereka sendiri ..
sumber
Gunakan butterknife untuk mengikat sumber gambar ke variabel dengan menambahkan ini ke atas kelas Anda (sebelum metode apa pun).
lalu di dalam salah satu metode Anda tambahkan
Itu yang kamu butuhkan
sumber
sumber
Cobalah
ViewCompat.setBackground(yourView, drawableBackground)
sumber
Coba kode ini:
sumber
coba ini.
sumber
sumber
Di dalam aplikasi / res / your_xml_layout_file .xml
sumber