android - Displaying pictures stored on the SD Card using a Gridview -


i relatively new android , need one. trying write code display pictures on sd card using gridview, far when run application textview @ top shown. know if there serious flaw in logic of code in main activity code, image adapter class code or both. code:

package com.newtestforsdcarddisplay;  import android.app.activity; import android.os.bundle; import android.database.cursor; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.view.view; import android.widget.gridview; import android.widget.adapterview; import android.widget.toast; import android.provider.mediastore; import android.provider.mediastore.images.thumbnails; import android.net.uri; import android.widget.adapterview.onitemclicklistener;   public class mainactivity extends activity {  public cursor myimagecursor; public int columnnumber;    /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);  string[] imageids = new string[]{thumbnails._id};  uri myimagessource = mediastore.images.media.external_content_uri;  myimagecursor = managedquery(myimagessource,                  imageids, null, null, mediastore.images.thumbnails._id);           columnnumber = myimagecursor.getcolumnindexorthrow(mediastore.images.media._id);      gridview phoneimageview = (gridview)findviewbyid(r.id.sdcard);     phoneimageview.setadapter(new imageadapter(this));      phoneimageview.setonitemclicklistener(new onitemclicklistener() {          public void onitemclick(adapterview<?> parent, view v, int position, long id) {                  string[] data = { mediastore.images.media.data };               cursor  viewimagecursor = managedquery( mediastore.images.media.external_content_uri, data, null, null, mediastore.images.thumbnails._id );            int imagecolumnindex = viewimagecursor.getcolumnindexorthrow(mediastore.images.media.data);        viewimagecursor.movetoposition(position);        viewimagecursor.movetofirst();        string filepath = viewimagecursor.getstring(imagecolumnindex);        toast.maketext(mainactivity.this, filepath, toast.length_long).show();        bitmap yourselectedimage = bitmapfactory.decodefile(filepath);        }    });  }        } 

package com.newtestforsdcarddisplay;    import android.content.context; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.gridview; import android.widget.imageview; import android.net.uri; import android.provider.mediastore;  public class imageadapter extends baseadapter{      final   mainactivity pca = new mainactivity();        private context context;      public imageadapter(context localcontext) {       //  context = localcontext;     }      public int getcount() {        // return pca.myimagecursor.getcount();         return 0;     }     public object getitem(int position) {         return position;     }     public long getitemid(int position) {         return position;     }      public view getview(int position, view convertview, viewgroup parent) {         imageview picturesview;         if (convertview == null) {             picturesview = new imageview(context);             // move cursor current position             pca.myimagecursor.movetoposition(position);             // current value requested column             int imageid = pca.myimagecursor.getint(pca.columnnumber);             // set content of image based on provided uri             picturesview.setimageuri(uri.withappendedpath(                     mediastore.images.media.external_content_uri, "" + imageid));             picturesview.setscaletype(imageview.scaletype.fit_center);             picturesview.setpadding(8, 8, 8, 8);             picturesview.setlayoutparams(new gridview.layoutparams(100, 100));         }         else {             picturesview = (imageview)convertview;         }         return picturesview;     }       }   package com.newtestforsdcarddisplay;    import android.content.context; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.gridview; import android.widget.imageview; import android.net.uri; import android.provider.mediastore;  public class imageadapter extends baseadapter{      final   mainactivity pca = new mainactivity();        private context context;      public imageadapter(context localcontext) {       //  context = localcontext;     }      public int getcount() {        // return pca.myimagecursor.getcount();         return 0;     }     public object getitem(int position) {         return position;     }     public long getitemid(int position) {         return position;     }      public view getview(int position, view convertview, viewgroup parent) {         imageview picturesview;         if (convertview == null) {             picturesview = new imageview(context);             // move cursor current position             pca.myimagecursor.movetoposition(position);             // current value requested column             int imageid = pca.myimagecursor.getint(pca.columnnumber);             // set content of image based on provided uri             picturesview.setimageuri(uri.withappendedpath(                     mediastore.images.media.external_content_uri, "" + imageid));             picturesview.setscaletype(imageview.scaletype.fit_center);             picturesview.setpadding(8, 8, 8, 8);             picturesview.setlayoutparams(new gridview.layoutparams(100, 100));         }         else {             picturesview = (imageview)convertview;         }         return picturesview;     }       } 

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     > <textview       android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="@string/hello"     />     <gridview       android:id="@+id/sdcard"     android:layout_width="fill_parent"      android:layout_height="fill_parent"     android:padding="10dp"     android:verticalspacing="10dp"     android:horizontalspacing="10dp"     android:numcolumns="auto_fit"     android:columnwidth="90dp"     android:stretchmode="columnwidth"     android:gravity="center" />   </linearlayout> 

could me please???? said before, new android , have been struggling long time. appreciated.

do still need question?

what create "root" layout this

    <?xml version="1.0" encoding="utf-8"?>     <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"       android:layout_width="fill_parent"       android:layout_height="fill_parent">     <include layout="@layout/my_header"/>     <include layout="@layout/my_grid"/>           </linearlayout> 

in my_header.xml, set textview in linear layout.

    <?xml version="1.0" encoding="utf-8"?>     <linearlayout xmlns:android="http://schemas.android.com/apk/res/android">     <textview         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/hello"     />     </linearlayout> 

then in my_grid.xml, setup gridview

    <?xml version="1.0" encoding="utf-8"?>     <linearlayout xmlns:android="http://schemas.android.com/apk/res/android">     <gridview         android:id="@+id/sdcard"       android:layout_width="fill_parent"        android:layout_height="fill_parent"       android:padding="10dp"       android:verticalspacing="10dp"       android:horizontalspacing="10dp"       android:numcolumns="auto_fit"       android:columnwidth="90dp"       android:stretchmode="columnwidth"       android:gravity="center"       />     </linearlayout> 

good luck


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -