yılında yazmadan bunu yapmak için herhangi bir yol yoktur, ben bir düzen var ve boyut 20dp olmak istiyorum demek Bir Etkinlik, tabii ki, getContext()
'u bırakırsınız.
Ölçeklendirilmiş piksellerden (sp
) piksellere dönüştürmek için metrics.density
yerine metrics.scaledDensity
kullanın.
DÜZENLEME: dışarı @Santosh's answer puan, sen yardımcı sınıf TypedValue
kullanarak aynı şeyi yapabilir gibi: sp
için
DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
float dp = 20f;
float fpixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics);
int pixels = Math.round(fpixels);
, TypedValue.COMPLEX_UNIT_DIP
için TypedValue.COMPLEX_UNIT_SP
yerine.
Dahili olarak, applyDimension()
tam olarak yukarıdaki kodumla aynı hesaplamayı yapar. Kullanılacak kod sürümü, kodlama stilinizdir.
yardımcı diğer benzer yöntemler neden 0.5 eklerim içeren eşdeğerdir? – pankajagarwal
Yuvarlanmak için, çerçeve budur. Bu, boyutun asla 0px olmayacağını garanti eder. –
teşekkürler, oldukça mantıklı görünüyor :) – pankajagarwal