Bagaimana saya bisa mengatur ImageView
lebar dan tinggi suatu program?
java
android
android-emulator
android-widget
Praveenb
sumber
sumber
Jawaban:
Mungkin sudah terlambat tetapi demi orang lain yang memiliki masalah yang sama, untuk mengatur ketinggian ImageView:
Semoga ini membantu.
Penting. Jika Anda mengatur ketinggian setelah tata letak telah 'ditata', pastikan Anda juga menelepon:
sumber
image_view.getLayoutParams().height = RelativeLayout.LayoutParams.WRAP_CONTENT
.. Jika tampilan indukLinearLayout
digantiRelativeLayout
dengan ituJika tampilan gambar Anda dinamis, jawaban yang berisi getLayout akan gagal dengan null-exception.
Dalam hal ini cara yang benar adalah:
sumber
ImageView
menghilang. Caranya adalah membuat tata letak bagian (yaitu,<this_part_here>.LayoutParams
) sama dengan apa yang menjadi induknyaImageView
. Jadi, misalnya, jika Anda telah menempatkanImageView
dalam Anda diTableRow
dalamTableLayout
, Anda harus memilikinya sebagaiTableRow.LayoutParams
.Cara sederhana ini untuk melakukan tugas Anda:
dan cara lain jika Anda ingin memberikan ukuran dan tinggi layar lebar kemudian gunakan kode di bawah ini:
harap gunakan penuh untuk Anda.
sumber
int
variabel jika mereka tidak akan digunakan kembali di tempat lain? Sepertinya tidak perlu tapi saya tidak tahu banyak tentang itu tbh.Saya telah memainkan ini dengan
pixel
dandp
.Cara mengatur oleh piksel :
Cara mengatur oleh dp :
Semoga ini bisa membantu Anda.
sumber
Jika Anda perlu mengatur lebar atau tinggi badan Anda
match_parent
(sebesar induknya) atauwrap_content
(cukup besar agar sesuai dengan konten internalnya sendiri), makaViewGroup.LayoutParams
buatlah dua konstanta ini:Atau Anda dapat mengaturnya seperti dalam jawaban Hakem Zaied :
sumber
Anda dapat menetapkan nilai untuk semua kasing.
sumber
Cara terbaik dan termudah untuk mengatur tombol secara dinamis adalah
Tinggi dan lebar di atas adalah dalam piksel px . 45 menjadi tinggi dalam dp dan 42 menjadi lebar dalam dp .
Jadi, misalnya, jika Anda meletakkan tombol di dalam TableRow di dalam TableLayout, Anda harus menjadikannya sebagai TableRow.LayoutParams
sumber
Cukup buat objek LayoutParams dan tetapkan ke imageView Anda
sumber
mengembalikan nilai tinggi dalam piksel. Anda harus mendapatkan dimensi layar terlebih dahulu untuk mengatur nilai dengan benar.
Setelah Anda mendapatkan dimensi layar, Anda dapat mengatur lebar & tinggi tampilan gambar menggunakan margin yang tepat.
sumber
Untuk mengatur ImageView dan Tinggi Secara Programatis, Anda dapat melakukannya
sumber
kotlin
sumber
Dalam skenario di mana ukuran widget perlu diatur secara terprogram, pastikan aturan di bawah ini.
LayoutParam
untuk Tata Letak tempat Anda menambahkan tampilan itu . Dalam kasus saya saya menambahkanTableRow
jadi saya harus lakukanTableRow.LayoutParams
final float scale = getResources().getDisplayMetrics().density; int dpWidthInPx = (int) (17 * scale); int dpHeightInPx = (int) (17 * scale);
TableRow.LayoutParams deletelayoutParams = new TableRow.LayoutParams(dpWidthInPx, dpHeightInPx); button.setLayoutParams(deletelayoutParams); tableRow.addView(button, 1);
sumber
Jika Anda hanya ingin memasukkan gambar dalam tampilan gambar, Anda dapat menggunakan "wrap content" pada properti tinggi dan lebar dengan tipe skala tetapi jika Anda ingin mengatur secara manual Anda harus menggunakan LayoutParams.
Layoutparams efisien untuk mengatur tinggi dan lebar tata letak secara terprogram.
sumber
sumber