我需要基於條件來改變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