کلیدستان

نسخه‌ی کامل: بارگذاری تصویر به صورت پویا (در برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
من میخوام یک آرایه از اسامی تصاویری که در پوشه دارم بسازم و یک محل image در صفحه موبایل .  و با کلیک روی تصاویر  به صورت تصادفی یک تصویر در شیء image بازگذاری شود. با استفاده از اسامی فایل تصاویر که در آرایه دارم.
لطفا راهنمایی بفرمایید
سلام.
اگر عکس ها در پوشه های 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 در نظر گرفته ایم).

(۱۳۹۴/۰۳/۲۰, ۰۴:۵۹ ب.ظ)'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 در نظر گرفته ایم).



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


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

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

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