کلیدستان

نسخه‌ی کامل: استفاده از GridView در برنامه اندروید ???
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام خدمت شما استاد گرامی 

خواستم از شما درخواست راهنمایی را بر اساس کلید 2776 را داشته باشم ...

1_ چگونه برای هر عکس یک عنوان به صورت مختلف بنویسیم ؟
2-چگونه با لمس شدن هر عکس آن عکس تمام صفحه شود و قابلیت ارسال آن ( اضافه شدن چند دکمه مانند sahre , home و ... به این حالت ) از طریق برنامه های دیگر .
3-چگونه عکسی را که قبلا مشاهده نموده ایم برای مثال دور آن رنگ دیگری بیاید یا علامتی بنیشیند و ... .


با تشکر از شما
سلام دوست عزیز.
1- اگر سایر آموزش های سایت کلیدستان در مورد ساخت ListView برای برنامه اندروید را خوانده باشید، در آنها، برای تعیین عنصرهای موجود در هر item (ردیف - row) از ListView ، یک فایل xml می ساختیم و عنصرهای هر item و نحوه قرارگیری آنها را در همان فایل xml تعیین می کردیم. اما اگر کدهای آموزش GridView که لینک آن را قرار دادید را با دقت خوانده باشید، خبری از فایل xml نیست و ما تنها با کد زیر، برای هر item ، یک ImageView ساخته ایم :

کد:
imageView = new ImageView(mContext);

یعنی با کدنویسی، عنصر جدیدی را تعریف کرده ایم و سپس ویژگی های مورد نظرمان را برای آن به کار برده ایم (با کدهای بعدی).
حال شما قصد دارید که علاوه بر نمایش یک عکس در هر item ، یک متن (عنوان عکس) نیز در هر item نمایش داده شود. برای این منظور، باید یک TextView نیز برای هر item تعریف کنید و رشته (متن - string) مورد نظرتان را هم در آن نمایش بدهید (چگونگی تعریف آن، مشابه همان کد بالا می باشد).

البته فایل xml نیز می توان برای هر item ساخت (بستگی به انتخاب برنامه نویس دارد).

2- در مورد تمام صفحه شدن عکس، باید ابتدا به سراغ قسمتی از کدها بروید که برای تعیین اجرای یک سری کد بعد از اشاره کاربر بر روی هر item می باشد، یعنی این قسمت از کدها :

کد:
gridview.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View v,
                            int position, long id) {
                        String position_string = "you pressed the item number " + String.valueOf(position+1) + " in GridView";
                        Toast.makeText(getApplicationContext(), position_string, Toast.LENGTH_SHORT).show();
                    }
                });

در آن تعیین می کنید که با اشاره کاربر بر روی یک item ، وارد یک Activity جدید می شویم که در آن یک ImageView وجود دارد و Activity مورد نظر، شماره مربوط به item را از Activity قبلی دریافت کرده و بر اساس آن، عکس متناظر را در ImageView نمایش می دهد. در صورت تمایل، می توانید پس زمینه Activity را شفاف کنید تا بخشی از GridView را کاربر همچنان ببیند (مشابه فروشگاه های اندروید).

3- برای این مورد، شما باید از SharedPreferences استفاده کنید که ابتدا بتوانیم اطلاعات مربوط به دیده شدن یا دیده نشدن عکس ها را در برنامه ذخیره کنیم (حتی برای اجراهای بعدی برنامه). سپس برای هر item ، مطابق با اطلاعات SharedPreferences  تعیین شده برای آن، تعیین می کنیم که چگونه نمایش داده شود، مثلا یک ImageView با همان روشی که گفتم، اضافه می کنیم که اگر عکس قبلا دیده شده، یک عکس خاص در آن نمایش داده شود، اما اگر دیده نشده، عکسی دیگر را در آن نمایش می دهیم. یا مثلا برای تغییر رنگ دور عکس که دیگر راحت تر است و حتی نیاز به افزودن عنصر جدید نیست.

با تشکر از راهنمایی شما 

فقط یک نکته مورد توجه و اینکه میشه کدی نوشت که وقتی روی عکسی کلیک شد به یک Activity دیگر نرویم و عکس در همین صفحه باز شود و دور آن حالت مات بگیرد و عنوان آن در صفحه نمایش داده شود ( مثل وقتی که اکشن بار کشویی را باز می نماییم ) .

سوال دوم : میشه در حالتی که بیان شد ، دکمه برای Share عکس قرار داد یا  نه ؟؟؟

با تشکر از شما
 
1- اگر قصد ندارید که عکس در یک Activity جدید نمایش داده شود، می توانید از Dialog با پس زمینه شفاف استفاده کنید. برای ساخت Dialog ، کلید زیر را بخوانید (نمایش یک پیام به کاربر، به صورت یک پنجره جدید، با استفاده از Dialog) :

http://www.kelidestan.com/keys/keys.php?key=227

برای شفاف کردن پس زمینه یک Dialog ، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=277

علاوه بر این، از AlertDialog نیز می توانید استفاده کنید :

http://www.kelidestan.com/keys/keys.php?key=2407

2- بله در این حالت هم می توان عکس را به اشتراک گذاشت (sharing). یک دکمه (Button) برای آن تعریف می کنید که برای اجرای کدهای به اشتراک گذاری عکس به کار رود. مثالی که برای AlertDialog زدیم، خودش دکمه داره، اما برای قرار دادن یک دکمه (Button) درون پیام نمایش داده شده توسط Dialog ، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=2554

برای به اشتراک گذاری عکس، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=357

سلام دوستان یه گریدویو ساختم که میخوام وقتی کسی روی هر کدوم از آیتمها کلیک کرد tost بزنه و بازم روی هر کدوم از آیتمها کلیک کرد بره به اکتیویتی بعدی مشکل اینجاست که روی هر کدوم از آیتمها میرنم فقط میره توی یک اکتیویتی من 9 تا اکتیویتی دارم و میخوام با کلیک روی هر کدوم از عناصر توی گرید ویو بره توی اکتیویتی جداگانه
ممنون میشم راهنمایی کنید
اینم کدهای مربوط به اکتیوینی جاری
http://s1.picofile.com/file/8262881276/code.txt.html