android-ImageView

来源:互联网 发布:儿童围棋教学软件 编辑:程序博客网 时间:2024/05/17 03:11
在android上,对于图片集的操作,一张一张可以上下滑动,选择一张图片后调用我们以前写过的android美图秀秀基础篇程序开始编辑。首先我们应该写个适配器MyAdapterpackage com.example.myactivity;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.graphics.BitmapFactory;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MyAdapter extends BaseAdapter {    private LayoutInflater mInflater;    private List<ImageInfo> mImageInfos = new ArrayList<ImageInfo>();    public MyAdapter() {    }    public MyAdapter(Context context, List<ImageInfo> imageInfos) {        mInflater = LayoutInflater.from(context);        mImageInfos = imageInfos;    }    @Override    public int getCount() {        return mImageInfos.size();    }    @Override    public Object getItem(int position) {        return mImageInfos.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        //position = position+1;        ViewHolder holder;        if (convertView == null) {            convertView = mInflater.inflate(R.layout.item, null);            holder = new ViewHolder();            holder.textview = (TextView) convertView.findViewById(R.id.txt);            holder.imageview = (ImageView) convertView.findViewById(R.id.image);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }        holder.imageview.setImageBitmap(BitmapFactory.decodeFile(mImageInfos.get(position).getPath()));        holder.textview.setText("第" + position + "张");        return convertView;    }    static class ViewHolder {        TextView textview;        ImageView imageview;    }} MainActivity package com.example.myactivity;import java.io.File;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Environment;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;public class MainActivity extends Activity {    private ListView mListView;    private List<ImageInfo> mImageInfos = new ArrayList<ImageInfo>();    private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mListView = (ListView) findViewById(R.id.listview);        getImages(Environment                .getExternalStorageDirectory());        myAdapter = new MyAdapter(this, mImageInfos);        mListView.setAdapter(myAdapter);        mListView.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {                // TODO Auto-generated method stub                Toast.makeText(MainActivity.this, "您选择的是第"+position+"张图片", 1).show();                String path = mImageInfos.get(position).getPath();                Intent intent = new Intent();                intent.setClassName("com.example.test",                        "com.example.test.CanvasActivity");//调用我们以前写的应用                intent.putExtra("path", path);                startActivity(intent);            }        });    }    private void getImages(File rootPath) {        // File rootPath =        // Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);        File[] paths = rootPath.listFiles();        if (paths != null) {            for (File path : paths) {                if (path.isFile() && isOurNeed(path)) {                    ImageInfo mInfo = new ImageInfo();                    mInfo.setPath(path.getAbsolutePath());                    mImageInfos.add(mInfo);                } else if (path.isDirectory()                        && !path.getName().equals(".thumbnails")) {                    getImages(path);                }            }        }    }    private boolean isOurNeed(File path) {        if (path.getName().endsWith(".jpg") || path.getName().endsWith(".png")                || path.getName().endsWith(".jpeg")) {            return true;        }        return false;    }    /*private void getFiles(List<String> fileList, File path) {        File[] allFiles = path.listFiles();        for (int i = 0; i < allFiles.length; i++) {            File file = allFiles[i];            if (file.isFile() && path.getName().endsWith(".jpg")) {                fileList.add(file.getAbsolutePath());            } else if (file.isDirectory()) {                getFiles(fileList, file);            }        }    }*/    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}ImageInfopackage com.example.myactivity;public class ImageInfo {    public int position;    public String path;        public int getPosition() {        return position;    }    public void setPosition(int position) {        this.position = position;    }    public String getPath() {        return path;    }    public void setPath(String path) {        this.path = path;    }}

我们运行后的结果:



选择一张图片后调用我们之前写过的android应用:


0 0
原创粉丝点击