0
holder.item3.setImageResource(custom.getcustomImage());

这是我的自定义ListViewAdapter中包含图像视图的一行代码。我需要将我放入的图像缩小到我ImageViewListView.

我想应用imageview.setImageResource(custom.getcustomImage());到我的适配器中的项目,但我得到一个错误。

Cannot invoke setScaleType(ImageView.ScaleType) on the primitive type int

我的代码看起来像这样

holder.item3.setImageResource(custom.getcustomImage().setScaleType(ScaleType.FIT_XY);

我应该如何使用它FIT_XY,还有另一种方法可以在我的图像中放置图像ImageViewListView

我的适配器。

public class CustomAdapter extends ArrayAdapter<Custom> {
        private ArrayList<Custom> entries;
        private Activity activity;

        public CustomAdapter(Activity a, int textViewResourceId,
                ArrayList<Custom> entries) {
            super(a, textViewResourceId, entries);
            this.entries = entries;
            this.activity = a;
            // TODO Auto-generated constructor stub
        }

        public class ViewHolder {
            public TextView item1;
            public TextView item2;
            public ImageView item3;

        }

        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            ViewHolder holder;
            if (v == null) {
                LayoutInflater vi = (LayoutInflater) activity
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.rowlayout, null);
                holder = new ViewHolder();
                holder.item1 = (TextView) v.findViewById(R.id.secondLine);
                holder.item2 = (TextView) v.findViewById(R.id.firstLine);
                holder.item3 = (ImageView) v.findViewById(R.id.icon);
                v.setTag(holder);
            } else
                holder = (ViewHolder) v.getTag();

            final Custom custom = entries.get(position);
            if (custom != null) {
                holder.item1.setText(custom.getcustomBig());
                holder.item2.setText(custom.getcustomSmall());
                holder.item3.setImageResource(custom.getcustomImage());
                holder.item3.setScaleType(ScaleType.FIT_XY);
            }
            return v;
        }
    }
}

线路呼叫代码

a = new Custom("String one","Stringtwo", R.drawable.image);

行布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:background="#FFFFFF"
    android:padding="6dip" >

    <!-- android:background="@color/Cream" -->

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dip"
        android:contentDescription="TODO"
        android:src="@drawable/launchicon" />

    <TextView
        android:id="@+id/firstLine"
        android:layout_width="fill_parent"
        android:layout_height="26dip"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/icon"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="Example application"
        android:textColor="#000000"
        android:textSize="12sp" />

    <TextView
        android:id="@+id/secondLine"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/secondLine"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_toRightOf="@id/icon"
        android:gravity="center_vertical"
        android:text="Description"
        android:textColor="#000000"
        android:textSize="16sp" />

</RelativeLayout>
4

1 回答 1

0

我看到那item3是一个ImageView. 您正在尝试将图像应用于该ImageView.
在这里,您getcustomImage()可能返回一个 imageResId。

如果您的 getcustomImage() 方法返回一个图像资源 ID(它是一个整数值),请使用;

holder.item3.setImageResource(custom.getcustomImage());

将图像应用于ImageView. 最后使用上
没有问题setScaleTypeImageView

holder.item3.setScaleType(ScaleType.FIT_XY);

阅读有关setImageResourcesetScaleType的更多信息

编辑: 不久;
改变这个;

holder.item3.setImageResource(custom.getcustomImage().setScaleType(ScaleType.FIT_XY);

有了这个:

holder.item3.setImageResource(custom.getcustomImage());
holder.item3.setScaleType(ScaleType.FIT_XY);

编辑:ImageView在您 对您说 wrap_content 时,rowlayout.xml您正在消除scaleType选项,因为您ImageView将自己调整为图像的大小。您可能希望提供静态宽度以在列表中获得更好的视觉效果(所有图像宽度都将相等)。你想要 fitXY 但考虑使用 centerinside 作为选项(以获得更好的视图)。并尝试在您的 rowlayout 中使用 scaleOption,以便您可以在图形布局中看到它的输出。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:background="#FFFFFF"
    android:padding="6dip" >

    <!-- android:background="@color/Cream" -->

    <ImageView
        android:id="@+id/icon"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dip"
        android:contentDescription="TODO"
        android:src="@drawable/launchicon" 
        android:scaleType="fitXY"/>

    <TextView
        android:id="@+id/firstLine"
        android:layout_width="wrap_content"
        android:layout_height="26dip"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/icon"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="Example application"
        android:textColor="#000000"
        android:textSize="12sp" />

    <TextView
        android:id="@+id/secondLine"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/firstLine"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_toRightOf="@id/icon"
        android:gravity="center_vertical"
        android:text="Description"
        android:textColor="#000000"
        android:textSize="16sp" />

</RelativeLayout>
于 2013-11-11T19:32:16.217 回答