Android固定高度列表项目照片

时间:2015-01-22 16:05:09

标签: android android-listview android-view android-adapter

我正在创建一个使用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 个答案:

答案 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来定义行的布局。使自定义行的外观变得容易得多。