列表项照片上的Android固定高度
Posted
技术标签:
【中文标题】列表项照片上的Android固定高度【英文标题】:Android fixed height on list item photo 【发布时间】:2015-01-22 16:05:08 【问题描述】:我正在制作一个使用 listview
的应用程序,它具有部分标题和内容。对于每个标题,我想使用一个图像,但视图将它的高度设置为图像的高度,而不是我设置高度的值。这是在我的适配器中:
@Override public View getView(int position, View convertView, ViewGroup parent)
TextView view = (TextView) super.getView(position, convertView, parent);
view.setTextColor(Color.DKGRAY);
Item item = getItem(position);
if (item.type == Item.SECTION)
if (position == 0)
view.setBackgroundResource(R.drawable.myImage);
view.setHeight(400);
view.setMaxHeight(400);
else
//deal with other views
return view;
我只是通过将列表中的第一项设置为照片来测试这一点,但正如我所说,视图没有使用 400px 作为高度。如果我在else
块中以相同的方式设置高度并将背景设置为颜色,它就可以正常工作。我应该注意,我想避免只是手动缩放图片以适应,因为最终我希望视图只显示完整图像的框架并添加滚动效果。
【问题讨论】:
【参考方案1】:我不太确定你在问什么。您是否希望它仅在有图像时显示 400 像素,如果没有图像则更小?使用您拥有的代码,图像是否显示?
我马上想像这样重写你的代码:
@Override
public View getView(int position, View convertView, ViewGroup parent)
convertView = new TextView(mContext); // where mContext = context; appears in the adapter constructor
convertView.setTextColor(Color.DKGRAY);
Item item = getItem(position);
if (item.type == Item.SECTION)
if (position == 0)
convertView.setBackgroundResource(R.drawable.myImage);
convertView.setHeight(400);
convertView.setMaxHeight(400);
//need something like convertView.setText((String) item); to get text to show
else
//deal with other views
return convertView;
我建议使用 xml 来定义行的布局。使自定义行的外观变得更加容易。
【讨论】:
是的,即使我将高度设置为 400 像素,视图实际上使用的图像高度也像 1000 像素 您想截断并使用顶部的 400px,而不是将其缩小到 400px? 对,要么上要么下 您可以像这样在 xml 中定义背景图像:***.com/a/8501398/2832027 或者您可以先使用带有 ImageView 的 RelativeLayout 为您的行使用布局:***.com/a/8242775/2832027 所以我使用了第一个链接中引用的 xml 文件,所做的只是使图像没有被拉伸,它仍然保持在 400 像素以上。此外,我似乎无法使用 convertView 并使用(TextView)进行投射。我收到一个错误,某些方法(例如 setTextColor)不存在。以上是关于列表项照片上的Android固定高度的主要内容,如果未能解决你的问题,请参考以下文章
包装在 HorizontalScrollView 中的 Android Listview 高度不正确,其中列表项的高度不同
通过单击列表视图上的列表项更改 MapView Android Studio 上的位置相机视图