انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بارگذاری تصویر به صورت پویا (در برنامه نویسی اندروید)

بارگذاری تصویر به صورت پویا (در برنامه نویسی اندروید)

#1
سلام
من میخوام یک آرایه از اسامی تصاویری که در پوشه دارم بسازم و یک محل image در صفحه موبایل .  و با کلیک روی تصاویر  به صورت تصادفی یک تصویر در شیء image بازگذاری شود. با استفاده از اسامی فایل تصاویر که در آرایه دارم.
لطفا راهنمایی بفرمایید
پاسخ

بارگذاری تصویر به صورت پویا (در برنامه نویسی اندروید)

#2
سلام.
اگر عکس ها در پوشه های drawable قرار دارند، باید آرایه از جنس Integer باشد که هر عنصر آن، اشاره به یکی از عکس ها دارد. مثل آرایه زیر :

کد پی‌اچ‌پی:
Integer[] myImages = {
                      
R.drawable.image_1,
                      
R.drawable.image_2,
                      
R.drawable.image_3,
                      
R.drawable.image_4,
                      
R.drawable.image_5
              
}; 

برای آرایه بالا، چون آرایه (Array) دارای 5 عنصر است، باید برای اشاره به عناصر آن، اعداد 0 تا 4 به کار رود. پس برای انتخاب تصادفی یک عکس، باید عددی تصادفی بین 0 تا 4 تولید کنیم :

کلید شماره 3033

سپس بر اساس عدد تصادفی، عنصر را از آرایه فراخوانی می کنیم :

کلید شماره 2877 (در مورد آرایه ها (Array) و اشاره به عنصری از آرایه)

بعد کد نمایش در ImageView را خواهیم داشت (کلید شماره 216) :

کد پی‌اچ‌پی:
ImageView iv = (ImageViewfindViewById(R.id.imageView1);
iv.setImageResource(R.drawable.kelidestan); 

در کد بالا، به جای عبارت R.drawable.kelidestan باید همان عنصر فراخوانی شده از آرایه را قرار بدهیم (در کد بالا، id مربوط به ImageView را برابر imageView1 در نظر گرفته ایم).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط _ali_ ، داش بهروز ، Java_man

بارگذاری تصویر به صورت پویا (در برنامه نویسی اندروید)

#3
(۱۳۹۴/۰۳/۲۰, ۰۴:۵۹ ب.ظ)'admin' نوشته: سلام.
اگر عکس ها در پوشه های drawable قرار دارند، باید آرایه از جنس Integer باشد که هر عنصر آن، اشاره به یکی از عکس ها دارد. مثل آرایه زیر :

کد پی‌اچ‌پی:
Integer myImages = {
                      
R.drawable.image_1,
                      
R.drawable.image_2,
                      
R.drawable.image_3,
                      
R.drawable.image_4,
                      
R.drawable.image_5
              
}; 

برای آرایه بالا، چون آرایه (Array) دارای 5 عنصر است، باید برای اشاره به عناصر آن، اعداد 0 تا 4 به کار رود. پس برای انتخاب تصادفی یک عکس، باید عددی تصادفی بین 0 تا 4 تولید کنیم :

کلید شماره 3033

سپس بر اساس عدد تصادفی، عنصر را از آرایه فراخوانی می کنیم :

کلید شماره 2877 (در مورد آرایه ها (Array) و اشاره به عنصری از آرایه)

بعد کد نمایش در ImageView را خواهیم داشت (کلید شماره 216) :

کد پی‌اچ‌پی:
ImageView iv = (ImageViewfindViewById(R.id.imageView1);
iv.setImageResource(R.drawable.kelidestan); 

در کد بالا، به جای عبارت R.drawable.kelidestan باید همان عنصر فراخوانی شده از آرایه را قرار بدهیم (در کد بالا، id مربوط به ImageView را برابر imageView1 در نظر گرفته ایم).



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


 
پاسخ

بارگذاری تصویر به صورت پویا (در برنامه نویسی اندروید)

#4
برای تکراری نبودن، باید تشخیص بدهیم که کدام عکس ها قبلا نمایش داده شده اند. می توانید یک آرایه (Array) از جنس int تعریف کنید که طول آن برابر همان تعداد عکس بوده و همچنین در ابندا، همه عناصر آن برابر 0 باشد. با نمایش هر عکس، عنصر متناظر با آن را در این آرایه برابر 1 قرار می دهیم که یعنی قبلا نمایش داده شده. 
پس بعد از تولید یک عدد تصادفی، ابتدا چک می کنیم که آیا عنصر متناظر با آن، برابر 0 است یا 1 ، اگر برابر با 1 بود، دوباره یک عدد تصادفی تولید می کنیم.

استفاده از لیست آرایه ای (ArrayList) به جای آرایه (Array) هم می تواند مفید باشد چون در لیست آرایه ای (ArrayList)، می توانیم عنصرها را حذف کنیم. یعنی بعد از نمایش یک عکس، می توانیم نام آن را از لیست آرایه ای (ArrayList) حذف کنیم و مسلما باید عدد ماکزیمم برای تولید عدد تصادفی، یک واحد کم شود.

در مورد اینکه خطا داده، باید کدهایتان را ذکر کنید. بدون دیدن کد نمیشه نظر داد.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط _ali_ ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان