کلیدستان

نسخه‌ی کامل: گرفتن تصاویر برای گریدویو از اینترنت (در برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام 
فرض کنید ما یک گرید ویو داریم که قراره توش 100 عکس باشه ...
چون حجم عکسا بالا هست و حجم برنامه ممکنه سربه فلک بکشه ما قصد داریم عکس ها رو در هاستی با لینک مستقیم و ثابتی بریزیم و گرید ویو عکس ها رو از رو آدرس اینترنتیشون بخونه و در برنامه نمایش بده 
کسی تا حالا ابن کار رو کرده و بلد؟

من در برنامم به صورت آفلاین می خونم با این کد ها : 



کد:
GridView grid;
    public String myImages = {"ax1.png","ax2.png",};


grid = (GridView) findViewById(R.id.grid);   
        grid.setAdapter(new ImageAdapter(this));  
        grid.setVisibility(View.INVISIBLE);
        grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                               
                            try {
                              if(position==0)
                                  bm1 = BitmapFactory.decodeStream(getAssets().open("ax1.png"));
                              else if(position==1)
                                  bm1 = BitmapFactory.decodeStream(getAssets().open("ax2.png"));
                              
                                } catch (IOException e) {
                                    e.printStackTrace();
                                } 
                               
                                if(bm1.getWidth()>minsize || bm1.getHeight()>maxsize)
                                    ChangeBitmap1Size();
                                
                            btnImage1.clearAnimation();
                            if(source2==null)
                            {
                                createanimations();
                                btnImage2.setAnimation(animation2);
                                }
                            
                                imageselected = true ;    
                                   bm1Widthzoom = bm1.getWidth();
                                bm1Heightzoom = bm1.getHeight();
                                bm1changed = bm1;
                                editimage = 1;
                                cropimage1up = 0;
                                cropimage1left = 0;
                                cropimage1right = bm1.getWidth();
                                cropimage1down = bm1.getHeight();
                                new ProcessingBitmapAsync().execute("");     
                                                            
                                
                                grid.setVisibility(View.INVISIBLE);
                                
                   
                        
                    }
                });
        



از چه راهی به هدفم برسم؟
سلام.
در مواردی که قصد داریم عکس از اینترنت دانلود شده و در برنامه اندروید نمایش داده شود، خیلی ساختار برنامه اندروید مهم نیست که ImageView معمولی باشه یا ListView یا GridView یا ... . چون در مواردی مثل ListView یا GridView ، باز هم همان ImageView است که در ساختار item ها به کار رفته است. پس شما باید در کدهای Adapter که item ها را می سازد، ببینید در کجا ImageView شناسایی شده است، بعد بر روی همان، کد مربوط به دانلود عکس و نمایش را اجرا کنید. این کد مربوط به دانلود و نمایش عکس، معمولا حداکثر 3 خط می شود. زیرا بر اساس کلاسی (Class) است که ImageView مورد نظر و همچنین آدرس اینترنتی (آدرس URL ) عکس را دریافت کرده و سپس کل فرآیند دانلود عکس و نمایش آن در ImageView را اجرا می کند. در مورد آن، کلید زیر را بخوانید :

کلید شماره 2777

اول اینکه بسیار تشکر چون خیلی سرع پاسخ دادید 

یه سوال دیگه تو همین ضمینه :
برنامه ی بنده برنامه ی قاب عکس هست خواستم بدونم اون کلیدی که معرفی کردید می تونه در این ضمینه مفید باشه:

هدف:
به جای اینکه مقادری زیادی از تصاویر رو به عنوان قاب عکس در برنامه ذخیره کنیم و حجم برنامه زیاد بشه، ما باید همین تصاویر رو با لینکی ثابت در اینترنت ذخیره کنیم و وقتی کاربر اقدام به انتخاب کادر یا همون قاب برای خودش کرد( گریدویو) عکس ها یکی یکی از نت لود بشن و در گرید ویو نمایش داده بشن و هر کردوم رو که انتخاب کرد به بخش اصلی برنامه جهت استفاده کاربر انتقال داده بشه 

حالا خواستم بدونم کلید مورد نظر توانایی اعمال چنین خواسته ای رو داره ؟
تشکر
کلید مورد نظر، تصاویر رو cache میکنه. پس هر تصویر، تنها یک بار از اینترنت دانلود می شود و در دفعات بعدی نمایش آن، عکس از حافظه خوانده می شود، ولی شیوه ذخیره سازی عکس به صورت فایل عکس معمولی نیست. 
-----------------------------
ممکن است شما تصاویر را در دو اندازه در برنامه قرار بدهید، یکی برای پیش نمایش و دیگری با اندازه بزرگتر و تنها برای زمانی که کاربر آن را انتخاب می کند. اینکه تصاویر کوچک هم در اینترنت باشند یا نه، به سلیقه خود شما بستگی دارد، ولی اگر هر دو در اینترنت باشند، مشکل خاصی نخواهد بود.
-----------------------------
اینکه می گویید ((به برنامه منتقل شود))، شما باید هر بار، آدرس URL عکس را ذکر کنید (آدرس URL را به آن کلاس می دهید)، سپس همان ساختاری که عکس را cache کرده، تشخیص می دهد که عکس قبلا دانلود شده و آن را از حافظه می خواند و نمایش می دهد.

تشکر 
در رابطه با کلید 
2777
 میشه جوری تنظیم کرد که  تصاویر اونجایی که ما دوست داریم یا در حقیقت محل نصب برنامه دانلود شه و در باز کردن های دوباره ی برنامه چون عکس قبلا دانلود و در کحلش قرار گرفته دیگه دانلود نشه؟