我有一个显示新闻项目的列表视图。
每个新闻项目可能包含/不包含图片。
如果确实包含图像,请冷静!
如果它不包含图像我将图像占位符设置为不可见,并调整其所包含的框架布局的大小。
我将首先显示列表视图的图像:
正如您可以看到新闻 ,图片正常运作。 但是没有图像的新闻项目不是!!。
在我的XML布局文件中,我将博客/新闻文本视图高度设置为30dp。
<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)...也许我的转换功能有问题?
非常感谢任何帮助!
答案 0 :(得分:1)
使用wrap_content作为TextView的布局高度。这应该可以解决您的问题。