我需要基于条件来改变ImageView的单ImageView的,问题是,尺寸的ImageView只能通过ImageView.getLayoutParameters被改变()。宽度/高度,这样做会改变每个的宽度ListView中的项目。调整内部的ListView
是否有改变单一的ImageView大小的方法吗?至于现在我找不到办法。
我需要基于条件来改变ImageView的单ImageView的,问题是,尺寸的ImageView只能通过ImageView.getLayoutParameters被改变()。宽度/高度,这样做会改变每个的宽度ListView中的项目。调整内部的ListView
是否有改变单一的ImageView大小的方法吗?至于现在我找不到办法。
你必须写,如果其他条件
if(yourcondtion)
{
setlayoutparams();
}
else
{
setoriginallayoutparams();
}
正如我所说。更改layoutparams将更改每个项目的参数,因为ListView项目是从单个XML文件填充的 – Yehonatan 2014-09-20 16:17:15
这里是我的自定义适配器。我可以通过将参数设置为imageView来重新调整图像大小。希望对你有帮助!
P.S最糟糕的是,通过这种方式,你必须创建每次您的看法!这比使用viewHolder更慢。
public class Adapter extends BaseAdapter {
ArrayList<String> list = new ArrayList<String>();
Activity activity;
public Adapter(Activity activity) {
this.activity = activity;
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");
list.add("Item 6");
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
LayoutInflater inflater = activity.getLayoutInflater();
convertView = inflater.inflate(R.layout.adapter,null);
ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView);
TextView textView = (TextView) convertView.findViewById(R.id.textView);
textView.setText(list.get(i));
//Condition
if (i == 5)
{
setLayoutParams(imageView,40,40);
}
else {
setLayoutParams(imageView,70,70);
}
imageView.setImageDrawable(activity.getResources().getDrawable(R.drawable.ic_launcher));
return convertView;
}
private View setLayoutParams(View view, int width, int height)
{
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width,height);
view.setLayoutParams(params);
return view;
}
}
这不是我所要求的。我说每个ListView项目。这改变了整个布局。 – Yehonatan 2014-09-20 18:27:10
确定不是改变此 '如果(条件) { 返回的setLayout(convertView,宽度,高度); }否则{ 返回的setLayout(convertView,宽度,高度); }' 并将其更改为setLayoutParams: 'AbsListView.LayoutParams params = new AbsListView.LayoutParams(width,height);' – ArbenMaloku 2014-09-20 18:34:18
您的布局参数尝试过吗? – 2014-09-20 16:09:05
我做过了,在我的文章中提到它 – Yehonatan 2014-09-20 16:53:12
您是否找到解决此问题的解决方案? – androidevil 2015-04-10 19:54:08