ニュース項目を表示するリスト ビューがあります。
各ニュース項目には、画像が含まれる場合と含まれない場合があります。
画像が含まれている場合は、クールです。
画像が含まれていない場合は、画像のプレースホルダーを非表示に設定し、内部に含まれるフレーム レイアウトのサイズを変更します。
最初にリスト ビューの画像を表示します。
ご覧のとおり、画像付きのニュース項目は正常に機能しています。でも画像のないネタはありません!!。
私の XML レイアウト ファイルでは、ブログ/ニュース テキスト ビューの高さを 30 dp に設定しています。
<TextView
android:layout_width="match_parent"
android:layout_height="30dp"
したがって、画像が存在しない場合は、次のコードを実行します。
if(no image is loaded)
nimage.setVisibility(View.GONE); // set image placeholder to hidden
// change frame layout height to 30dp (size of News/Blog)
flayout1.getLayoutParams().height = (int)convertPixelsToDp(30, getContext());
flayout1.requestLayout();
私のconvertPixelsToDp()
機能は次のようなものです:
public static float convertPixelsToDp(float px, Context context){
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float dp = px / (metrics.densityDpi / 160f);
return dp;
}
このコードは機能するはずです...と思います。しかし、明らかに、上に見られるように、高さが正しく設定されていません。つまり、TextView の一部が切り取られています。
問題は、小さい画面で実行するとかなりうまく動作しますが、画面サイズに依存しない (dp を使用) べきではないということです... 変換機能に問題があるのでしょうか?
どんな助けでも大歓迎です!