Saya secara dinamis membuat tombol. Saya menatanya menggunakan XML terlebih dahulu, dan saya mencoba mengambil XML di bawah ini dan membuatnya menjadi program.
<Button
android:id="@+id/buttonIdDoesntMatter"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="buttonName"
android:drawableLeft="@drawable/imageWillChange"
android:onClick="listener"
android:layout_width="fill_parent">
</Button>
Inilah yang saya miliki sejauh ini. Saya bisa melakukan segalanya kecuali yang dapat digambar.
linear = (LinearLayout) findViewById(R.id.LinearView);
Button button = new Button(this);
button.setText("Button");
button.setOnClickListener(listener);
button.setLayoutParams(
new LayoutParams(
android.view.ViewGroup.LayoutParams.FILL_PARENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT
)
);
linear.addView(button);
drawableLeft
. Saya mencoba saran Anda di sini untuk menetapkan "ikon terlarang" ketika Anda mengklik dalam folder tanpa izin baca, dan itu berhasil. Namun, ketika Anda mengganti folder dan adaptor dimuat ulang, ikon terlarang tetap ada (artinya,drawableLeft
tidak digambar ulang). Apakah Anda tahu cara mendaftarnotifyDataSetChanged
juga untukdrawableLeft
, tanpa melakukan loop? Terima kasih!Listview
item saat data berubah - yang tidak benar-benar terkait dengan pertanyaan atau jawaban ini. Saya sarankan Anda memposting pertanyaan, bukan komentar.setCompoundDrawablesWithIntrinsicBounds( 0, 0, R.drawable.money, 0 )
berfungsi, jika saya mendefinisikan drawableRight di layout.xml. Jika saya mengatur ikon asli di dalamonCreate()
, maka perubahan berfungsi. Mungkinkah itu terkait dengan API 19?Cukup Anda bisa mencoba ini juga
sumber
•
Kotlin Version
Gunakan potongan di bawah ini untuk menambahkan gambar kiri ke tombol:
.
•
Important Point in Using Android Vector Drawable
Saat Anda menggunakan gambar vektor Android dan ingin memiliki kompatibilitas mundur untuk API di bawah 21 , tambahkan kode berikut ke:
Di tingkat aplikasi
build.gradle
:Di kelas Aplikasi:
sumber
Context#.getDrawable(resId)
sudah usang, jadi menggunakannya dapat menyebabkan beberapa masalah.Bagi saya, itu berhasil:
sumber
sumber
Saya melakukan ini:
sumber
Jika Anda menggunakan drawableStart , drawableEnd , drawableTop atau drawableBottom ; Anda harus menggunakan " setCompoundDrawablesRelativeWithIntrinsicBounds "
sumber
Bekerja untukku. Untuk mengatur drawable di sebelah kanan
sumber
seperti yang ditunjukkan oleh @ Jérémy Reynaud, seperti dijelaskan dalam jawaban ini , cara teraman untuk mengatur drawable kiri tanpa mengubah nilai drawable lainnya (atas, kanan, dan bawah) adalah dengan menggunakan nilai sebelumnya dari tombol dengan setCompoundDrawablesWithIntrinsicBounds :
Jadi semua gambar Anda sebelumnya akan dipertahankan.
sumber
Berikut ini adalah cara untuk mengubah warna ikon kiri dalam teks edit dan mengaturnya di sisi kiri.
sumber
Mungkin bisa membantu:
sumber
Tambahkan Ekstensi Kotlin
Jika Anda akan sering melakukan ini, menambahkan ekstensi membuat kode Anda lebih mudah dibaca. Tombol memperluas TextView; gunakan Tombol jika ingin lebih sempit.
Untuk menggunakan ekstensi, cukup panggil
Kapan saja Anda perlu menghapus, jangan melewati param atau membuat ekstensi lain dipanggil
removeDrawables
sumber
Coba ini:
sumber
Coba ini:
sumber