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

تغییر سورس تصویر imageView به صورت دینامیک

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

من میخوام عکسی که برای imageView  انتخاب شده رو براساس نام تصاویری که در drawable به ترتیب و فرمت  خاصی نامگذاری و ذخیره شده اند رو تغییر بدم مثلا imageOne , imageTwo و الی آخر ، ولی مشکل اینجاست که نمیدونم چه جوری باید از دو تا دستور زیر استفاده کنم

 
myImageView.setImageResource(R.Drawable.targetImage); or myImageView.setImageDrawable(getRecources().getDrawable(R.Drawable.targetImage));

بخوام واضح تر منظورم رو بیان کنم میتونم اینجوری بگم که چه طور میشه فرضاً با هر بار فراخوانی متدی که در اون از یکی از دو دستور بالا استفاده شده قسمت targetImage در کدهای بالا رو به صورت داینامیک به نام تصویر مورد نظر تغییر داد.از متغیر که فکر نمیکنم بشه استفاده کرد به جاش!! میشه؟

یه مقدار سرچ کردم این راه حل رو پیدا کردم که جواب این بوده که میشه از Reflection استفاده کرد ولی من هیچ آشنایی با این مبحث از جاوا ندارم و نمیدونم چه طوری باید به این مورد تعمیم داده بشه.

اگه ایده یا راه حل بهتری در نظر دارید لطفاً منو راهنمایی کنید.

نظرات

پاسخ‌ها 1

override 12 سال پیش

خب بچه ها واقعاً غافلگیر شدم از این همه پیشنهاد ، کد ، راهنمایی ، نظر، لینک !! :) به احتمال زیاد تا حالا یه بار براتون پیش اومده بود که نیاز به یه همچین موردی داشته باشید! نداشتید؟

خدارو شکر و خوشبختانه راه حل رو پیدا کردم اینجا هم میذارم مطمئنم حتماً یه روزی به کارتون میاد.البته به جای imageone از این فرمت نامگذاری استفاده کردم: image1 البته فرقی نداره میشد فقط از نام های خشک و خالی بدون پسوند عددی ولی متفاوت از هم استفاده کرد ولی حالا من این روش نامگذاری رو ترجیح دادم کد زیر رو ببینید.

 

   private void setImage(ImageView imageView,String someName) {

String prefix = someName;
int suffix = counter++;

Resources resource = getResources();
int imgId = resource.getIdentifier(prefix + suffix, "drawable","your.package.name");
imageView.setImageResource(imgId);

}

 

نظرات

Spirit 12 سال پیش
من که تازه رسیدم ، ولی این مورد تو آموزش ها بود قسمتش یادم نیست ولی مربوط به تصویر و آنلاین و ... بود
override 12 سال پیش
الان یه مشکل دیگه پیش اومده فقط دفعه اول عکس ها درست لود میشه بعدش غیب میشن!! اینو تازه فهمیدم . کاشکی زودتر سوال رو دیده بودی S P ! R ! T الان یه روز و نصف حیرون همین بودم ،اگه کسی یادشه کدوم آموزش بود بگه من هنوز همه رو ندیدم و الان دوباره به مشکل برخوردم
override 12 سال پیش
S P ! R ! T توی اون آموزش هم همین کد استفاده شده بود؟ یا یه تکنیک دیگه زده بود ؟ :)
Spirit 12 سال پیش
همینا بود
override 12 سال پیش
مشکل غیب زدگی حل شد :) یه بنده خدایی :) اون متغیر counter رو static تعریف کرده بود هر بار که متد اجرا میشد شماره میرفت بالا و چون عکسی با اون پسوند عددی در drawable نبود که نشون بده دفعه بعد چیزی نشون نمیداد.

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