获取SD卡上所有的图片

来源:互联网 发布:基金定投用什么软件 编辑:程序博客网 时间:2024/05/29 16:08

fragment_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.xwy.sd.MainActivity$PlaceholderFragment" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />        <GridView         android:id="@+id/gridView1"        android:layout_height="match_parent"        android:layout_width="wrap_content"        android:layout_marginTop="10px"        android:horizontalSpacing="3px"        android:verticalSpacing="3px"        android:numColumns="4" ></GridView></LinearLayout>
MainActivity.java

package com.xwy.sd;import java.io.File;import java.util.ArrayList;import java.util.List;import android.support.v4.app.Fragment;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Environment;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class MainActivity extends Activity {private List<String> imagePath = new ArrayList<String>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);String sdpath = Environment.getExternalStorageDirectory() + "/";getFiles(sdpath);////调用getFiles()方法获取SD卡上的全部图片if(imagePath.size()<1){return;}GridView gridView = (GridView) findViewById(R.id.gridView1);BaseAdapter adapter = new BaseAdapter() {public View getView(int position, View convertView, ViewGroup parent) {ImageView imageView; // 声明ImageView的对象if(convertView == null){imageView = new ImageView(MainActivity.this);// 实例化ImageView的对象/************* 设置图像的宽度和高度 ******************/imageView.setAdjustViewBounds(true);imageView.setMaxHeight(113);imageView.setMaxWidth(150);/**************************************************/imageView.setPadding(5, 5, 5, 5); // 设置ImageView的内边距}else{imageView = (ImageView) convertView;}// 为ImageView设置要显示的图片Bitmap bm = BitmapFactory.decodeFile(imagePath.get(position));imageView.setImageBitmap(bm);return imageView;}public long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public Object getItem(int position) {// TODO Auto-generated method stubreturn position;}public int getCount() {// TODO Auto-generated method stubreturn imagePath.size();}};gridView.setAdapter(adapter); // 将适配器与GridView关联}//遍历指定的路径private void getFiles(String url) {File files = new File(url);//创建文件对象File[] file = files.listFiles();try {for(File f : file){//通过for循环遍历获取到的文件数组if(f.isDirectory()){//如果是目录,也就是文件夹getFiles(f.getAbsolutePath());// 递归调用}else{if(isImageFile(f.getParent())){//如果是图片文件imagePath.add(f.getPath());//将文件的路径添加到list集合中}}}} catch (Exception e) {e.printStackTrace();}}private static String[] imageFormatSet = new String[]{"jpg","png","gif"};//合法的文件格式private static boolean isImageFile(String path) {for(String format : imageFormatSet){if(path.contains(format)){//判断是否为有合法的图片文件return true;}}return false;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}}


0 0
原创粉丝点击