╔══════════════════════════════════════════════╗ ^
║ ImageView ╔══════════════╗ ║ |
║ ║ ║ ║ |
║ ║ Actual image ║ ║ |
║ ║ ║ ║ |60px height of ImageView
║ ║ ║ ║ |
║ ║ ║ ║ |
║ ╚══════════════╝ ║ |
╚══════════════════════════════════════════════╝
<------------------------------------------------>
90px width of ImageView
Saya memiliki tampilan gambar dengan beberapa tinggi dan lebar standar, gambar disimpan dalam db dan saya ingin mengatur skala Gambar berdasarkan lebar tinggi Imageview. Karena saya tidak ingin itu memberikan nilai default karena ketika saya mengubahnya tinggi dan lebar saya juga harus mengubahnya dalam kode.
Saya mencoba untuk mendapatkan tinggi dan lebar ImageView tetapi 0 dikembalikan kepada saya dalam kedua kasus.
int height = ((ImageView) v.findViewById(R.id.img_ItemView)).getHeight();
ini mengembalikan saya 0 bahkan memiliki tinggi dan lebar standar
android:scaleType="centerInside"
?Jawaban:
Jawaban saya atas pertanyaan ini dapat membantu Anda:
Anda kemudian dapat menambahkan pekerjaan penskalaan gambar Anda dari dalam metode onPreDraw ().
sumber
Saya baru saja mengatur properti ini dan sekarang OS Android mengurus semuanya.
Gunakan ini di layout.xml tempat Anda menanam ImageView: D
sumber
Saya bisa mendapatkan lebar dan tinggi gambar dengan gambarnya;
sumber
Alasan dimensi ImageView adalah 0 adalah karena ketika Anda menanyakannya, tampilan masih belum melakukan tata letak dan mengukur langkah-langkah. Anda hanya memberi tahu tampilan bagaimana itu akan "berperilaku" dalam tata letak, tetapi masih tidak dihitung di mana harus menempatkan setiap tampilan.
Bagaimana Anda memutuskan ukuran untuk diberikan ke tampilan gambar? Tidak bisakah Anda menggunakan salah satu opsi penskalaan yang diterapkan secara asli?
sumber
Posting ke utas UI berfungsi untuk saya.
sumber
file xml Anda:
file java Anda:
sumber
Saya pikir Anda dapat membiarkan OS Android mengurus ini untuk Anda. Setel jenis skala pada ImageView ke
fitXY
dan gambar yang ditampilkan akan berukuran agar sesuai dengan ukuran tampilan saat ini.sumber
Cara paling sederhana adalah dengan mendapatkan lebar dan tinggi ImageView dalam metode aktivitas onWindowFocusChanged
sumber
Jika Anda telah membuat banyak gambar secara dinamis daripada coba yang ini:
// inisialisasi array gambar Anda
// buat secara programatis dan tambahkan ke tampilan induk
// Itu dia. Selamat Coding.
sumber
teman saya dengan ini kamu tidak mendapatkan tinggi gambar yang disimpan dalam db.tapi kamu mendapatkan tinggi tampilan. untuk mendapatkan tinggi gambar kamu harus membuat bitmap dari db, s image.and daripada kamu dapat mengambil tinggi dan lebar imageview
sumber