Fungsi Android View.setPadding(int left, int top, int right, int bottom)
hanya menerima nilai dalam px tetapi saya ingin mengatur padding dalam dp. Apakah ada jalan lain?
android
android-layout
Sharj
sumber
sumber
getResources()
adalah fungsi yang diwarisi oleh aktivitas, tetapi saya mencoba menggunakan baris ini dalam adaptor listview kustom. Adakah cara agar saya dapat melakukan ini jika saya tidak dapat menelepongetResources()
?Jika Anda menentukan dimensi (dalam dp atau apa pun) dalam file XML (yang lebih baik, setidaknya dalam banyak kasus), Anda bisa mendapatkan nilai pikselnya menggunakan kode ini:
sumber
Ada cara yang lebih baik untuk mengonversi nilai menjadi dp secara terprogram:
Kemudian terapkan
dpValue
ke metode Anda, misalnya:setPadding(dpValue,dpValue,dpValue,dpValue);
sumber
Anda dapat menghitung piksel untuk nilai DPI tertentu: http://forum.xda-developers.com/showpost.php?p=6284958&postcount=31
sumber
Saya memiliki masalah yang sama. Satu-satunya solusi yang saya temukan (ini tidak akan benar-benar membantu Anda :)) adalah dengan mengaturnya di file Xml.
Jika Anda bisa mendapatkan kepadatan dari kode, Anda dapat menggunakan konversi: "Konversi unit dip menjadi piksel layar sederhana: piksel = dips * (kepadatan / 160)." (dari http://developer.android.com/guide/practices/screens_support.html )
Edit: Anda bisa mendapatkan kerapatan layar: http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi
sumber