在listview中使用Fit_XY的java
holder.item3.setImageResource(custom.getcustomImage());
这是我的自定义ListViewAdapter
中保存imageview的一行代码。我需要得到我放入的图像,以便缩小到ListView
内的ImageView
大小
我想将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
,是否有其他方法可以将ImageView
图像放入我的ListView
中
我的适配器
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:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:layout_width="fill_parent"
安卓:layout_height="?安卓:attr/listPreferredItemHeight"
安卓:background="#FFFFFF"
安卓:padding="6dip" >
<!-- 安卓:background="@color/Cream" -->
<ImageView
安卓:id="@+id/icon"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:layout_alignParentBottom="true"
安卓:layout_alignParentTop="true"
安卓:layout_marginRight="6dip"
安卓:contentDescription="TODO"
安卓:src="@drawable/launchicon" />
<TextView
安卓:id="@+id/firstLine"
安卓:layout_width="fill_parent"
安卓:layout_height="26dip"
安卓:layout_alignParentBottom="true"
安卓:layout_alignParentRight="true"
安卓:layout_toRightOf="@id/icon"
安卓:ellipsize="marquee"
安卓:singleLine="true"
安卓:text="Example application"
安卓:textColor="#000000"
安卓:textSize="12sp" />
<TextView
安卓:id="@+id/secondLine"
安卓:layout_width="fill_parent"
安卓:layout_height="wrap_content"
安卓:layout_above="@id/secondLine"
安卓:layout_alignParentRight="true"
安卓:layout_alignParentTop="true"
安卓:layout_alignWithParentIfMissing="true"
安卓:layout_toRightOf="@id/icon"
安卓:gravity="center_vertical"
安卓:text="Description"
安卓:textColor="#000000"
安卓:textSize="16sp" />
</RelativeLayout>
# 1 楼答案
我看到
item3
是一个ImageView
。您正在尝试将图像应用于该ImageView
在这里,您的
getcustomImage()
可能会返回imageResId如果getcustomImage()方法返回图像分辨率id(为整数值),请使用
将图像应用于
ImageView
。最后,在
ImageView
上使用setScaleType
没有问题阅读更多关于setImageResource和setScaleType
编辑: 很快
改变这个
有了这个:
编辑: 在
rowlayout.xml
处对ImageView
说wrap_content to yourrowlayout.xml
就是在取消scaleType
选项,因为ImageView
将根据图像大小调整自身大小。你可能想给一个静态宽度,以便在你的列表上获得更好的视觉效果(所有图像的宽度都是相等的)。你想要FITXY,但是考虑使用CIMTIN作为一种选择(更好的观点)。并尝试在rowlayout中使用scaleOption,以便在图形布局中查看其输出