zoukankan      html  css  js  c++  java
  • android 显示目录下图片

    知识点

    1. 网格视图

    2. 读取文件

    MainAcitvity

    package com.test.gridview;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.GridView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            GridView gridview = (GridView) findViewById(R.id.gridview);
            gridview.setAdapter(new ImageAdapter(this));
    
            gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View v,
                                        int position, long id) {
                    Toast.makeText(MainActivity.this, "" + position,
                            Toast.LENGTH_SHORT).show();
                }
            });
        }
    
    
    }
    View Code

    ImageAdapter

    package com.test.gridview;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.ImageView;
    
    import java.util.List;
    import java.util.Map;
    
    /**
     * Created by 1 on 2016/4/17.
     */
    public class ImageAdapter extends BaseAdapter {
        private Context mContext;
    
        public ImageAdapter(Context c) {
            mContext = c;
        }
    
        public int getCount() {
            return imagePath.size();
        }
    
        public Object getItem(int position) {
            return null;
        }
    
        public long getItemId(int position) {
            return 0;
        }
    
        // create a new ImageView for each item referenced by the Adapter
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {
                // if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);
            } else {
                imageView = (ImageView) convertView;
            }
    
            Bitmap bitmap = BitmapFactory.decodeFile(imagePath.get(position).get(FileUtils.IMAGE_PATH));
            imageView.setImageBitmap(bitmap);
            return imageView;
        }
    
    
    
        private List<Map<String, String>> imagePath = FileUtils.getFiles(FileUtils.SDPATH);
    }
    View Code

    FileUtils

    package com.test.gridview;
    
    import android.os.Environment;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Created by 1 on 2016/4/17.
     */
    public class FileUtils {
    
        public static String[] imageFormatSet = {"jpg", "png", "gif"};
    
        public static String SDPATH = Environment.getExternalStorageDirectory() + "/00Meeting/";
    
        public static String IMAGE_NAME = "imageName";
    
        public static String IMAGE_PATH = "imagePath";
    
        /**
         * 判断是否是图片文件
         *
         * @param path
         * @return
         */
        public static boolean isImageFile(String path) {
            for (String format : imageFormatSet) {
    
                if (path.endsWith(format)) {
                    return true;
                }
            }
            return false;
        }
    
        public static List<Map<String, String>> getFiles(String path) {
    
            List<Map<String, String>> pathList = new ArrayList<>();
    
            File file = new File(path);
            File[] files = file.listFiles();
            for (File f : files) {
                if (f.isDirectory()) {
                    getFiles(f.getAbsolutePath());
                } else {
                    if (isImageFile(f.getPath())) {
                        Map<String, String> map = new HashMap<>();
                        map.put(FileUtils.IMAGE_NAME, f.getName());
                        map.put(FileUtils.IMAGE_PATH, f.getPath());
                        pathList.add(map);
    
                    }
                }
            }
            return pathList;
        }
    }
    View Code
  • 相关阅读:
    2013dgtcs 成绩排序
    JZOJ 1286. 太空电梯
    java单例模式Singleton
    设计模式的类型
    java工厂模式Factory
    Mysql SQL优化
    maven deploy命令打包到私服
    debian/linux 配置maven
    Java RC4加密解密工具
    JedisUtils
  • 原文地址:https://www.cnblogs.com/newlangwen/p/5401184.html
Copyright © 2011-2022 走看看