بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

نحوه ایجاد لیست ویوو کاستوم باآیتم هایی به رنگ مختلف پس زمینه ؟

مدیریت گفتگو
mars120 11 سال پیش
آخرین تغییر: 11 سال پیش

دوستان من میخوام یک لیست ویوو کاستوم بسازم که پنج تا رنگ که قبلا توی یک آرایه ذخیره کردم رو به بک گراندش اعمال کنم تقریبا شبیه عکس زیر مطالب و عکس رو بهش وارد کردم منتها برای بک گراندش نمیدونم چی کار کنم ،راهنمایی کنید ممنون میشم 

 

نظرات

کاشی زاده 11 سال پیش
در ادپتر در متد fill یه کد قرار بدید که رنگ رو به صورت شانسی براتون بسازه و به آیتم مورد نظر ست کنید . برای تولید رنگ های تصادفی هم آموزش استاد در رابطه با کساتوم کنترل ها مطالعه کنید پروژه باران
mars120 11 سال پیش
رنگ هایی که میخام اعمال کنم یه رنگ های خاصیه که که کد هاشو توی یه آرایه ذخیره کردم
hamidd 11 سال پیش
از متغیر position که درون متد fill بهش دسترسی دارید استفاده کنید . باقیمانده اش به 5 رو حساب کنید(عددی بین 0 تا 4 میشه). بعد براش سوییچ بزارید و رنگ های دلخواه رو ست کنید برای محاسبه ی باقیمانده از عملگر درصد % استفاده کنید

پاسخ‌ها 3

Sajad HP 11 سال پیش

یه نمونه کد که خودم تو پروژم نوشتم تقدیم به دوستان خوبم: 

 String[] colors = new String[] { "#e9a92f", "#00a3e7", "#fc7931",
				"#771f99", "#2439ff", "#ff28a1", "#31ea18", "#01aef0",
				"#79af03", "#3bb057", "#4d660e", "#f0b500", "#f09000",
				"#a5bd41", "#dd310b", "#dd310b", "#9f0303", "#771f99",
				"#005826", "#789111", "#594F4F", "#556270", "#C44D58",
				"#CC2A41", "#424254", "#5E412F", "#601848", "#480048",
				"#5C323E", "#A82743", "#6B0103", "#4B000F", "#432330",
				"#410936", "#66245B" };
		int pos = (int) (Math.random() * colors.length);
container_feed.setBackground(new ColorDrawable(Color
				.parseColor(colors[pos])));

نظرات

mars120 11 سال پیش
ممنون دوست عزیز ،یکم راجب نحوه استفاده اش که این کد رو کجا به کار ببرم توضیح می دید؟
mars120 11 سال پیش

 

 public class CustomList extends ArrayAdapter<String> {

    private final Activity  context;

    private final String[]  Str;

    private final Integer[] imgurl;


    public CustomList(Activity context, String[] web, Integer[] imageId) {
        super(context, R.layout.custom_listview, web);
        this.context = context;
        this.Str = web;
        this.imgurl = imageId;

    }


    @Override
    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.custom_listview, null, true);
        TextView txtTitle = (TextView) rowView.findViewById(R.id.txt1);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.img1);
        txtTitle.setText(Str[position]);
        imageView.setImageResource(imgurl[position]);
        return rowView;
    }

}

در کل میخام بدونم که اگه یه طرح لیست ویوومون مطابق شکل باشه اون linear layout که با آی دی backgr مشخص کردیم میشه رنگاشو متناوب عوض کرد البته با توجه به کلاس کاستوم لیستی که در بالا قرار دادم

نظرات

Sajad HP 11 سال پیش

باید در تابع getView  (بالا) که از کدهای خودتون گرفتم بنویسید . در لایه ای که درست کردید باید به backgr وصل بشید با دستور findViewById و کدی که برای شما در پاسخ قبلی گذاشتم رو در ادامش بنویسی دوست خوبم. یعنی این شکلی:

@Override
public View getView(int position,View view,ViewGroup parent){
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.custom_listview,null,true);
TextView txtTitle =(TextView) rowView.findViewById(R.id.txt1);
ImageView imageView =(ImageView) rowView.findViewById(R.id.img1);

LinearLayout
backgr =(LinearLayout) rowView.findViewById(R.id.backgr);
   String[] colors =newString[]{"#e9a92f","#00a3e7","#fc7931",
   "#771f99","#2439ff","#ff28a1","#31ea18","#01aef0","#79af03","#3bb057","#4d660e","#f0b500",
"#f09000","#a5bd41","#dd310b","#dd310b","#9f0303","#771f99","#005826","#789111","#594F4F",
"#556270","#C44D58","#CC2A41","#424254","#5E412F","#601848","#480048","#5C323E","#A82743",
"#6B0103","#4B000F","#432330","#410936","#66245B"};
int pos =(int)(Math.random()* colors.length);
backgr.setBackground(newColorDrawable(Color
.parseColor(colors[pos])));

txtTitle.setText(Str[position]); 
imageView
.setImageResource(imgurl[position]);
return rowView;
}

نظرات

mars120 11 سال پیش
دستتون درد نکنه ،ممنون از اینکه وقت گذاشتید ،متاسفانه هر چی با کد ها ور میرم درست نمیشه الان هم اررور میده که setBackground برای linear layout تعریف نشده ،به نظرم بهتره بیخیالش بشم

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .