[英]Resize View in dp
我一直在嘗試以編程方式調整ListView中View的寬度,因為我希望它以DP而不是像素為單位。
我的ListView生成一個RelativeLayout的實例,該實例的View充滿了整個屏幕(match_parent),並且內部有一個TextView和一個按鈕。
視圖按預期設置為width = match_parent,以填充整個屏幕
我想要的是在適配器中具有不同的視圖寬度。 占基本視圖總寬度的25%,50%或75%。
mRelativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(**[VALUE I NEED HERE]**, mRelativeLayout.getLayoutParams().height));
ImageView設置為width = match_parent
所以這是我的ViewList適配器中代碼的相關部分:
RelativeLayout mRelativeLayout = (RelativeLayout) convertView.findViewById(R.id.test_layout);
mRelativeLayout.setBackgroundResource(arrayListName.myColor);
if (arrayListName.myColor == R.color.custom ) {
dayviewLayout.setLayoutParams(new RelativeLayout.LayoutParams( 25% , dayviewLayout.getLayoutParams().height));
}
if (days.mMoodColor == R.color.custom2) {
dayviewLayout.setLayoutParams(new RelativeLayout.LayoutParams( 50% , dayviewLayout.getLayoutParams().height));
}
if (days.mMoodColor == R.color.custom3) {
dayviewLayout.setLayoutParams(new RelativeLayout.LayoutParams( 75% , dayviewLayout.getLayoutParams().height));
}
25-50-75%顯然是錯誤的,因為它僅使用int值。 我希望它適合任何屏幕。
謝謝你的支持。
dp
單位只是px
單位乘以當前屏幕密度,可通過DisplayMetrics
類獲得:
float density = [some context].getResources().getDisplayMetrics().density;
int dp = (int) ([your px value] * density);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.