我正在使用dev-smart(from here)的Horizo​​ntalListView来实现具有这样的子文本的图像的水平列表视图:



问题在于列表的每个项目视图的宽度都与屏幕的宽度一样。 AdjustViewBounds设置为true,但是不起作用...我得到了:



我试过了:


固定图像的宽度和高度,并使用getView()方法转换convertView
固定图像的宽度和XML中的RelativeLayout
在Horizo​​ntalListView的方法中将宽度固定为子级


可能是Horizo​​ntalListView错误了吗?还有其他方法吗?以前我在水平ListView中使用水平ListView,但这有问题。它会加载所有图片,即使它们从未被看到过。

有谁能够帮助我?谢谢!!

这是我的自定义适配器的getView()方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = inflater.inflate(R.layout.item_actor, null);

        holder.img = (ImageView) convertView.findViewById(R.id.actor_img);
        holder.tittle = (TextView) convertView.findViewById(R.id.actor_txt);
        convertView.setTag(holder);
    }

    else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.img.setImageResource(R.drawable.actor_thumb);
    holder.tittle.setText(getItem(position).getName());
    convertView.setLayoutParams(new LayoutParams(150,190));
    ImageDownloader.getInstance(mContext).download(getItem(position).getPhotoUrl(), holder.img,
            R.drawable.actor_thumb);
    return convertView;

}


这,项目视图将被夸大:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/actor_img"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop"
    android:src="@drawable/ic_launcher" />

<net.asturdroid.datamovie.widgets.TextViewRoboto
    android:id="@+id/actor_txt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@color/text_over_image_background"
    android:gravity="center"
    android:maxLines="3"
    android:textColor="@color/text_over_image" />

</RelativeLayout>


这就是Horizo​​ntalList项目:

        <com.devsmart.android.ui.HorizontalListView
            android:id="@+id/casting_view_list"
            android:layout_width="wrap_content"
            android:layout_height="190dp" /* wrap_content doesn't works. */>
        </com.devsmart.android.ui.HorizontalListView>

最佳答案

我认为这是Horizo​​ntalListView类的错误。

我改变

child.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST),
    MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.AT_MOST));




child.measure(MeasureSpec.makeMeasureSpec(params.width, MeasureSpec.AT_MOST),
    MeasureSpec.makeMeasureSpec(params.height, MeasureSpec.AT_MOST));


在Horizo​​ntalListView.java上,它对我有用。

希望对别人有帮助。

关于android - Horizo​​ntalListView-自定义图像文本 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16134760/

10-09 03:50