Saya menemukan utas bagus ini menjelaskan cara "makan kue dan memilikinya juga", yaitu menggunakan gambar untuk Button
alih - alih ImageButton
(yang tidak mengizinkan SetText()
, mengubah ukuran, dll.).
Ini dicapai dengan menggunakan atribut View:
android:background="@drawable/bgimage"
Satu-satunya masalah dengan ini adalah ia meregangkan gambar agar sesuai dengan ukuran tombol.
Singkatnya, hard-coding ukuran tombol tetap (dalam piksel!), Apakah ada cara untuk memberi tahu Android untuk tidak meregangkan gambar latar belakang sama sekali dan memotong atau memangkasnya?
sumber
ImageView
terlihat menarik. Aku melihat itu memiliki atribut yang tidak diButton
:android:cropToPadding
. Saya tidak keberatan menggunakan ImageView sebagai gantinya, selama itusetOnClickListener()
- yang memang dilakukannya. Apa yang akan membuat saya kehilangan dengan beralih dariButton
keImageView
?setDrawableResource
dan kemudian memastikansetAdjustViewBounds
disetel ke trueAnda dapat membuat bitmap xml dan menggunakannya sebagai latar belakang tampilan. Untuk mencegah peregangan, Anda dapat menentukan
android:gravity
atribut.sebagai contoh:
Ada banyak opsi yang dapat Anda gunakan untuk menyesuaikan rendering gambar
http://developer.android.com/guide/topics/resources/drawable-resource.html#Bitmap
sumber
Cukup menggunakan
ImageButton
alih-alihButton
memperbaiki masalah.dan Anda dapat mengatur
untuk menghapus latar belakang tombol jika Anda mau.
Perbaikan Cepat !! :-)
sumber
Saya menggunakan ImageView dalam RelativeLayout yang dilapisi dengan tata letak normal saya. Tidak ada kode yang dibutuhkan. Ini mengukur gambar ke tinggi penuh layar (atau tata letak lain yang Anda gunakan) dan kemudian memotong gambar ke kiri dan kanan agar sesuai dengan lebarnya. Dalam kasus saya, jika pengguna memutar layar, gambarnya mungkin agak terlalu kecil. Oleh karena itu saya menggunakan match_parent, yang akan membuat lebar gambar melebar jika terlalu kecil.
sumber
Saya memiliki masalah yang sama: Anda sebaiknya hanya menggunakan gambar 9-patch (.9.png), bukan gambar asli Anda.
Serge
sumber
Gunakan draw9patch ... yang disertakan dalam alat SDK Android Studio. Anda dapat menentukan area gambar Anda yang dapat direntangkan. Bagian penting dibatasi dan gambar tidak terlihat bengkok seluruhnya. Demo bagus di dra9patch ada DI SINI
Gunakan draw9patch untuk mengubah splash.png yang sudah ada menjadi new_splash.9.png, seret new_splash.9.png ke dalam folder proyek drawable-hdpi memastikan AndroidManifest dan styles.xml sesuai seperti di bawah ini:
AndroidManifest.xml:
styles.xml:
sumber
Saya memiliki gambar latar belakang, tidak dalam ukuran besar, tetapi dengan dimensi yang aneh - karena itu peregangan dan kinerja yang buruk. Saya membuat metode dengan parameter Context, View dan drawable ID (int) yang akan cocok dengan ukuran layar perangkat. Gunakan ini misalnya di Fragments onCreateView untuk menyetel latar belakang.
sumber
Berikut adalah versi jawaban Santosh untuk tombol yang dibuat secara terprogram, tanpa perlu konfigurasi XML terpisah:
Saya menyertakan garis ColorFilter karena itu bekerja sedikit berbeda dari tombol dengan gambar latar belakang normal.
sumber
Anda dapat menggunakan a
FrameLayout
with anImageView
sebagai anak pertama, kemudian layout normal Anda sebagai anak kedua:sumber
Kuncinya adalah menyetel drawable sebagai gambar tombol, bukan sebagai latar belakang. Seperti ini:
sumber
Seseorang dapat menggunakan ImageView biasa dalam xml-nya dan membuatnya dapat diklik (android: clickable = "true")? Anda hanya perlu menggunakan sebagai src gambar yang sudah berbentuk seperti tombol yaitu sudut bulat.
sumber