这是我的布局图库 //gallery.xml
<FrameLayout android:id="@+id/FrameLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout android:id="@+id/LinearLayout01"
android:layout_gravity="top"
android:layout_height="50dp"
android:layout_width="fill_parent">
<Button android:layout_gravity="left"
android:id="@+id/btnPhotos"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:textStyle="bold"
android:layout_width="100dp"
android:layout_height="40dp"
android:text="Photos"/>
<TextView android:id="@+id/TextViewAlbumName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_gravity="center"
android:text="Album Name"
/>
<Button android:layout_gravity="right"
android:id="@+id/btnCancel"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:textStyle="bold"
android:layout_width="100dp"
android:layout_height="wrap_content" android:text="Cancel"/>
</FrameLayout>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_gravity="bottom"
android:layout_marginTop="50dp"/>
</FrameLayout>
我的问题是如何在gridview中显示所有图库? 我知道How to pick an image from gallery (SD Card) for my app?但我需要留在我的应用程序中并获取相册的名称。
答案 0 :(得分:-1)
您想只显示手机上的所有图像吗?或者你想像画廊应用程序一样显示它并首先显示文件夹?
编辑:以下是获取设备内部和外部所有图像的代码 注意您需要获得读取SD卡的权限才能使其正常工作。
//This gets all external images
String[] mProjection = {MediaStore.Images.Media.DATE_TAKEN,MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,mProjection,null,null,MediaStore.Images.Media.DATE_ADDED);
//This gets all internal images
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.INTERNAL_CONTENT_URI,mProjection,null,null,MediaStore.Images.Media.DATE_ADDED);
请注意,我将date_taken和data作为查询传递,因此要获取这些字段,您可以
while(cursor.moveToNext()){
long date =cursor.getLong(0);
String fileLoc=cursor.getString(1);
}
然后,您可以根据位置显示图像,按日期排序等等......