بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
قرار دادن SetBackGround به صورت Dynamic
یک ListView دارم که توی اون Imageviw قرار دادم
آیا راهی هست که SetBackGround رو به صورت Dynamic مثلا بر اساس یک آرایه تعیین کنم؟
0
0
متونی تو لیستی که به لیست ویو بایند میکنی اندیس آرایه عکس رو نگهداری و موقع fill کردن آیتم عکس رو هم تنظیم کنی (12 سال پیش)
0
0
نمی شه، حلقه For رو دادم به آرایه اما تمام اندیس ها رو 0بر می گردونه (12 سال پیش)
0
0
اندکی کد! (12 سال پیش)
برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال
Hossein Kurd
12 سال پیش
0
0
کد:
private static class ViewHolder{
private RelativeLayout rl_image;
private ImageView imgPrd;
//private Bitmap bitmap;
private TextView tv_name;
public ViewHolder(View view){
rl_image = (RelativeLayout) view.findViewById(R.id.rl_image);
imgPrd = (ImageView) view.findViewById(R.id.img_prd);
tv_name = (TextView) view.findViewById(R.id.tv_name);
}
@SuppressLint("NewApi")
public void fill(ArrayAdapter<StructItem> adapter,StructItem item, int position ){
int imgH = (int) (UIHelper.width * 1.5);
rl_image.setLayoutParams(new LinearLayout.LayoutParams(UIHelper.width,imgH));
//imgPrd.setBackgroundResource((Integer)item.imageid);
//imgPrd.setImageDrawable(item.res);
//imgPrd.setImageBitmap(BitmapFactory.decodeResource(G.appConfigs.context.getResources(),item.imageid));
tv_name.setText(item.name.trim().toString());
switch (item.catid) {
case 0:
Log.i("index", "Index: " + 0 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_3);
break;
case 1:
Log.i("index", "Index: " + 1 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_1);
break;
case 2:
Log.i("index", "Index: " + 2 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_2);
break;
case 3:
Log.i("index", "Index: " + 3 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_3);
break;
case 4:
Log.i("index", "Index: " + 4 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_1);
break;
default:
Log.i("index", "Index: Default & item.catid: " + item.catid);
break;
}
}
}
و:
for(int i=0;i<=3;i++){
item = new StructItem();
item.id = i;
item.catid = i;
item.name = "تصویر شماره " + i;
items.add(item);
}
adapter.notifyDataSetChanged();
پاسخ به سوال
محمد حسین زاده
12 سال پیش
+1
0
خلاصه کدت میشه این :
private static class ViewHolder{
private ImageView imgPrd;
private TextView tv_name;
public ViewHolder(View view){
imgPrd = (ImageView) view.findViewById(R.id.img_prd);
tv_name = (TextView) view.findViewById(R.id.tv_name);
}
public void fill(ArrayAdapter<StructItem> adapter,StructItem item, int position ){
tv_name.setText(item.name.trim().toString());
switch (item.catid) {
case 0:
Log.i("index", "Index: " + 0 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_3);
break;
case 1:
Log.i("index", "Index: " + 1 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_1);
break;
case 2:
Log.i("index", "Index: " + 2 + " item.catid: " + item.catid);
imgPrd.setBackgroundResource(R.drawable.lv_2);
break;
default:
Log.i("index", "Index: Default & item.catid: " + item.catid);
break;
}
}
}
تنظیمات RelativeLayout رو هم به xml واگذار کن
Log ها توی خروجی میاد؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .