我正在创建一个使用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
块中以相同的方式设置高度,并将背景设置为颜色,则可以正常工作。我应该注意,我想避免手动缩放图片以适应,因为最终我希望视图只显示完整图像的帧并添加滚动效果。
答案 0 :(得分:0)
我不太确定你在问什么。你想要它只显示400px如果有图像,如果没有则显示更小?使用您的代码,图像显示?
我立刻想要像这样重写你的代码:
@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来定义行的布局。使自定义行的外观变得容易得多。