استفاده از ImageView در ListView جهت نمایش یک عکس در Gallery
یه ListView دارم که توی همه ی آیتم هاش یه ImageView داره
میخوام با تاچ کردن ِ Buttonی که بالاتر از ListView قرار داره، همه ی ImageView ها که البته GONE هستند VISIBLE بشن
و بتونم واسه هر کدوم از ImageView ها ClickListenerی بنویسم که عکس داخلشون رو بفرستن به یه اکتیویتی دیگه
راستی چه کدی رو کجا باید استفاده کنم که بتونم یه عکس از گالری گوشی وارد برنامه کنم ؟
ممنون
یه راه اینه که وقتی دکمه کلیک میشه مقدار یه متغییر رو true کنی و notifyDataSetChanged رو صدا بزنی.
از اون طرف تو آداپترت تعریف کنی که اگه این متغییر true بود visible اون imageView رو تغییر بده
فقط توجه کن اون متغییر رو public تعریف کن که بتونی از توی کلاس adapter ت بهش دسترسی داشته باشی
اون onclickListener ش هم که توی همون adapret پیش بقیه تعریف میکنی و چیز خاصی نداره
برای گرفتن src اون عکست هم قبلا خودت یه سوال مشابه کرده بودی. (توی یکی دو جواب آخر استاد چند راه پیشنهاد داده):
که البته احتمالا خودت src اون عکس رو توی آرایه داری که Set ش کردی دیگه
برای دریافت عکس از گالری میتونید از راه زیر استفاده کنید :
ابتدا این مقدار ثابت رو در اکتیویتی تعریف کنید که هر مقداری میتونید قرار بدید
public static final int REQ_CODE_PICK_IMAGE = 123;
در قسمت کلیک ImageView یکی از دو کد زیر رو میتونید قرار بدید
این کد:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, REQ_CODE_PICK_IMAGE)
و یا این کد:
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQ_CODE_PICK_IMAGE);
بعد در قسمت onActivityResult این قطه کد رو قرار بدید که یک Uri به شما میده که میتونید از طریقش فایلش رو پیدا کنید و از روی اون Bitmap اش رو بسازید و یا مستقیم مثل کد زیر توی ImageView اون Uri رو ست کنید
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE_PICK_IMAGE && resultCode == RESULT_OK && data != null) {
img.setImageURI(data.getData());
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .