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
- android-ImageView
- android imageview
- Android ImageView
- android-ImageView
- Android ImageView
- Android-ImageView
- Android-ImageView
- Android ImageView
- Android:ImageView
- Android:ImageView
- Android ImageView
- Android ImageView
- android ImageView
- android 实现圆形imageView,Circle imageView
- android控件之imageview 以及重写imageview
- ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
- ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
- ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
- Fragment与Activity通讯
- 三次样条插值算法的C++实现
- 【算法编程】基于Miller-Rabin的大素数测试
- Beaglebone black锂电池cape
- hdu 1151
- android-ImageView
- Oracle 学习笔记 9 -- 数据处理
- this 关键字
- CSDN的博客积分计算规则及博客排名规则
- 静态块
- Android 手机上获取物理唯一标识码
- oracle 更新,查询语句 与约束问题
- POJ1009
- @RequestMapping的分类