Android gallery+BaseAdapter实现简易的图片查看器
来源:互联网 发布:阿里云建ss 编辑:程序博客网 时间:2024/05/30 12:30
布局文件main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" /></LinearLayout>
MainActivity类
package com.sun.activity;import java.io.File;import java.util.ArrayList;import android.app.Activity;import android.database.DataSetObserver;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.Gallery;import android.widget.SpinnerAdapter;public class MainActivity extends Activity { //用于保存sdcard中的图片路径 ArrayList<String> fileList=new ArrayList<String>(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //用于获得sdcard目录 File file= Environment.getExternalStorageDirectory();/*注释的部分是真机图片目录获得方式 “/DCIM/Camera/”这是我手机图片存放的位置String path= Environment.getExternalStorageDirectory()+"/DCIM/Camera/"; File file=new File(path); */ //用户获得sdcard目录下的文件 File[]files= file.listFiles(); for (int i = 0; i < files.length; i++) { //判断文件路径是不是图片,是图片保存到集合中 if(getImageFile(files[i].getPath())) { fileList.add(files[i].getPath()); } } //获得画廊 Gallery gallery=(Gallery) findViewById(R.id.gallery); //给画廊绑定适配器 gallery.setAdapter(new ImageAdapter(this, fileList)); } //判断文件路径是不是图片 public boolean getImageFile(String path) { //查找文件路径中点第一次出现位置,用于做字符串截取 int start=path.indexOf("."); //如果start=-1代表没找到详细说明请参考javaAPI帮助文档 if(start!=-1) { String str=path.substring(start+1, path.length()); Log.v("aaaaaaaaa",str); //判断是不是图片路径 if(str.equals("jpg")) { return true; }else{ return false; } }else{ return false; } }}
自定义ImageAdapter适配器
package com.sun.activity;import java.util.List;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;public class ImageAdapter extends BaseAdapter{ private Context mContext; private List<String>list; //构造方法 public ImageAdapter(Context context,List<String> imageList ){ mContext=context; list=imageList; } @Override public int getCount() {//获得要显示的图片数量就是集合的长度 // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) {//取得没个资源的位置 // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) {//取得每个项的ID // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView=new ImageView(mContext); //BitmapFactory.decodeFile其实就是个封装的IO流 Bitmap bm=BitmapFactory.decodeFile(list.get(position)); //把读取到的图片设置给imageview imageView.setImageBitmap(bm); //重新设置图片的缩放模式 imageView.setScaleType(ImageView.ScaleType.FIT_XY); //重新设置layout的宽和高 imageView.setLayoutParams(new Gallery.LayoutParams(200, 200)); return imageView; }}
运行效果
如果在真机上运行您只需要在AndroidManifest.xml文件中加入SDcard读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
1 0
- Android gallery+BaseAdapter实现简易的图片查看器
- android 拖拉图片 Gallery 用BaseAdapter实现
- android--gallery走廊效果图片查看器
- Android遍历某个文件夹的图片并实现滑动查看的的Gallery
- 【Android UI】案例01Cover Flow3D效果的实现(Gallery+BaseAdapter)
- 简易图片查看器
- 微缩预览画廊的实现:抽象类BaseAdapter填充Gallery
- android--Gallery的实现
- 实现图片缩放的Gallery
- 调用系统内置的gallery查看图片
- Android gallery实现图片的左右循环旋转源码分享
- Android gallery实现图片的左右循环旋转源码分享
- Android gallery实现图片的左右循环旋转源码分享
- Android利用gallery实现图片连动的效果
- Android gallery实现图片的左右循环旋转源码分享
- android用Gallery空间实现简单的图片显示
- 使用Gallery查看图片
- BaseAdapter应用 和gallery滑动图片
- android中出现"androidsdk/build-tools/23.0.2/aapt.exe"finished with...错误以及drawable/下的图片命名格式
- 数据挖掘经典算法概述以及详解链接
- cf#301-D - Bad Luck Island-概率dp(水 )
- light7ui 刷新子页面 js不能加载的问题
- java内置数据类型
- Android gallery+BaseAdapter实现简易的图片查看器
- C++设计模式<一>:简介
- QObject::connect: Cannot queue arguments of type 'XXX'
- 第一个ios程序中的问题
- 【AJAX】$.get()方法补充知识
- memcached 命令行参数说明
- Android Studio使用记录
- 自定义控件H之——聊天ListView
- Hadoop 2.5.2 安装