簡體   English   中英

調整dp中的視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM