universal image loader-Anzeige von Bildern von SD-Karte

mein Ziel ist die Anzeige der Bilder(thumbnails) von der SD-Karte in glatten Liste, die ich bearbeitet habe, die demo-Beispiel(das laden von Bildern aus dem web zu gridview) ein bisschen zum laden der Bilder von der SD-Karte zu sehen, die Leistung , und wenn die Bilder nicht zwischengespeichert (zum ersten mal), es ist ziemlich langsam, da sollte das laden der Bilder von der lokalen SD-Karte nicht im web, aber nach dem die Bilder zwischengespeichert werden iam ziemlich glücklich mit den Ergebnissen,bitte werfen Sie einen Blick und lassen Sie mich wissen, wenn iam etwas falsch zu machen, oder wie kann ich die Leistung auf den ersten laden, auch iam öffnen, die für andere Bibliotheken, die vielleicht auch mehr spezialisiert auf das laden von Bildern, form SD-Karte,hier ist der code :-

public class ImageGridActivity extends AbsListViewBaseActivity {


    //get files path in camera folder
     public String[] getimages() {   
         String[] images=new String[175];
         String path="file:///mnt/sdcard/DCIM/Camera/";
         int counter=0;
          String name;
         File sdCardRoot = Environment.getExternalStorageDirectory();
         File yourDir = new File(sdCardRoot, "dcim/camera");
         for (File f : yourDir.listFiles()) {
             if (f.isFile()){
               name = path + f.getName().toString() ;
          images[counter]=name;
                 //make something with the name
             counter++;}
         }
         return images;
     }   



    String[] imageUrls= getimages();
    DisplayImageOptions options;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ac_image_grid);



        Bundle bundle = getIntent().getExtras();
    // imageUrls = bundle.getStringArray(Extra.IMAGES);
    // imageUrls[0]="file:///mnt/sdcard/DCIM/Camera/abc.jpg";

        options = new DisplayImageOptions.Builder()
    /*      .showStubImage(R.drawable.ic_stub)
            .showImageForEmptyUri(R.drawable.ic_empty)
            .showImageOnFail(R.drawable.ic_error)
            .cacheInMemory(true)
            .cacheOnDisc(true)
            .bitmapConfig(Bitmap.Config.RGB_565)
            .build(); */
        .showStubImage(R.drawable.ic_stub)
        .showImageForEmptyUri(R.drawable.ic_empty)
        .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
        .showImageOnFail(R.drawable.ic_launcher).cacheInMemory()
        .cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();

        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                getApplicationContext()).discCacheExtraOptions(720  , 1280 , CompressFormat.PNG, 0, null).build();

        ImageLoader.getInstance().init(config);


        listView = (GridView) findViewById(R.id.gridview);
        ((GridView) listView).setAdapter(new ImageAdapter());
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                startImagePagerActivity(position);
            }
        });
    }

    private void startImagePagerActivity(int position) {
        Intent intent = new Intent(this, ImagePagerActivity.class);
        intent.putExtra(Extra.IMAGES, imageUrls);
        intent.putExtra(Extra.IMAGE_POSITION, position);
        startActivity(intent);
    }

    public class ImageAdapter extends BaseAdapter {


        @Override
        public int getCount() {
            return imageUrls.length;
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ImageView imageView;
            if (convertView == null) {
                imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
            } else {
                imageView = (ImageView) convertView;
            }

            imageLoader.displayImage(imageUrls[position], imageView, options);

            return imageView;
        }
    }
}

item_grid_image

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/image"
    android:layout_width="fill_parent"
    android:layout_height="120dip"
    android:adjustViewBounds="true"
    android:contentDescription="@string/descr_image"
    android:scaleType="centerCrop" />

vielen Dank im Voraus,

  • zeigen Sie uns item_grid_image code und verwenden Sie keine hartcodierten Pfade.
  • Hinzugefügt item_grid_image
  • auch können Sie bitte erklären, was meinst du "nicht verwenden einprogrammierte Pfade."
  • String path="file:///mnt/sdcard/DCIM/Camera/" dies ist hardcoded Pfad. verwenden Environment.getExternalStorageDirectory()
InformationsquelleAutor user1097275 | 2013-07-07
Schreibe einen Kommentar