- 浏览: 150350 次
- 性别:
- 来自: 茂名
文章分类
最新评论
-
stoneyulu:
很好,正需要要!用来在thread和activity之间传数 ...
在Activity中通过Bundle传递自定义数据类型 -
鱼在陆地上跑:
只能读取TXT格式的文件,而不能读取图片
读取Rescource和asset文件夹中的文件 -
myg_315:
我也在调查这个问题,谢谢!
Android程序的退出终于完美解决,兼容所有SDK -
jk138:
谢谢各位的评论,楼下的建议很好,值得大家注意了.
Android程序的退出终于完美解决,兼容所有SDK -
cyilinycc:
非常感谢你提供的这个方法,但我经过测试之后,发现这个方法存在弊 ...
Android程序的退出终于完美解决,兼容所有SDK
看了几个教程,学会 了两种方法实现Gallery相册,第一种是直接在res文件夹下放图片进行读取,第二种是读取sd卡的图片。
首先,写好布局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_height="143px" android:layout_width="fill_parent" /> <ImageView android:layout_width="239px" android:layout_height="218px" android:layout_x="38px" android:layout_y="184px" android:id="@+id/ImageView_photo" > </ImageView> </LinearLayout>
其二,在values文件夹下新建一个attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources> <declare-styleable name="Gallery"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources>
其三,写一个类,ImageAdapter.java
package com.chaowen;
import java.io.File; import java.util.ArrayList; import java.util.List; import android.R.color; import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.text.AndroidCharacter; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context ctx; int mGalleryItemBackground; private List<String> lis; //这是第一种方法,直接用res文件夹下的图片 /*public int[] images = { R.drawable.img01,R.drawable.img02, R.drawable.img03,R.drawable.img04 };*/ public ImageAdapter(Context ctx,List<String> li){ try { this.ctx = ctx; lis = li ; //使用res/values/attr.xml中的<declare-styleable>定义的Gallery属性 TypedArray a = ctx.obtainStyledAttributes(R.styleable.Gallery); //取得Gallery属性的Index id mGalleryItemBackground = a.getResourceId(R.styleable.Gallery_android_galleryItemBackground, Color.GREEN); //让对象的styleable属性能够反复使用 a.recycle(); } catch (Exception e) { e.printStackTrace(); } } @Override public int getCount() { return lis.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View converView, ViewGroup parent) { try { ImageView v = new ImageView(this.ctx); //设定图片给ImageView对象 Bitmap bm = BitmapFactory.decodeFile(lis.get(position).toString()); v.setImageBitmap(bm); /*v.setImageResource(this.images[position]);*/ //重新设定图片的宽高 v.setScaleType(ImageView.ScaleType.FIT_XY); //重新设定layout的宽高 v.setLayoutParams(new Gallery.LayoutParams(128,128)); v.setBackgroundResource(mGalleryItemBackground); return v; } catch (Exception e) { e.printStackTrace(); } return null; } }
最后,在主Activity类的代码如下
package com.chaowen; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Gallery; import android.widget.ImageView; import android.widget.Toast; public class GalleryDemo extends Activity { /** Called when the activity is first created. */ private Gallery mGallery; private ImageView imageView; private ImageAdapter imageAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mGallery =(Gallery) findViewById(R.id.gallery); imageView = (ImageView)findViewById(R.id.ImageView_photo); imageAdapter = new ImageAdapter(this,getSD()); mGallery.setAdapter(imageAdapter); mGallery.setOnItemClickListener(new Gallery.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { //显示该图片是几号 Toast.makeText(GalleryDemo.this, "这是图片:"+position+"号", Toast.LENGTH_SHORT).show(); //设置大图片 String photoURL = getSD().get(position); // imageView.setBackgroundResource(imageAdapter.images[position]); 这是用res资源下的图片的方法进行放大 imageView.setImageURI(Uri.parse(photoURL)); } }); } /** * 获取sd卡的图片 * @return */ private List<String> getSD() { /* 设定目前所在路径 */ List<String> it=new ArrayList<String>(); File f=new File("/sdcard/dcim/Camera/"); File[] files=f.listFiles(); /* 将所有文件存入ArrayList中 */ for(int i=0;i<files.length;i++) { File file=files[i]; if(getImageFile(file.getPath())) it.add(file.getPath()); } return it; } //获得文件的类型 private boolean getImageFile(String fName) { boolean re; /* 取得扩展名 */ String end=fName.substring(fName.lastIndexOf(".")+1, fName.length()).toLowerCase(); /* 按扩展名的类型决定MimeType */ if(end.equals("jpg")||end.equals("gif")||end.equals("png") ||end.equals("jpeg")||end.equals("bmp")) { re=true; } else { re=false; } return re; } }
- GalleryDemo.zip (732 KB)
- 下载次数: 140
发表评论
-
Failed to receive access token
2013-04-24 12:52 1452在 com.weibo.net.Token.java文件中 ... -
Android实例五:Notification通知和Broadcast结合
2011-06-15 11:42 8263第一步.MainActivity.java pack ... -
Android实例四:BroadCast_Receiver
2011-06-15 10:36 6728第一步. MainActivity.java ... -
Android实例三:学习Service
2011-06-15 10:15 1335第一步.MainActivity.java pa ... -
Android实例二:手机数据库SQListe
2011-06-14 11:16 2156[code="java"] ... -
Android实例一:文件搜索
2011-06-13 20:12 3763本例子参考SDK开发范例大全 说明:以ListA ... -
关于android ListView的美化
2011-05-31 08:36 960用心的朋友应该会发现,listview中在设置了背景之后。会有 ... -
Android程序的退出终于完美解决,兼容所有SDK
2011-05-30 16:23 3662上网学了好多方法,关于Android的Activity如何退出 ... -
android兼容2.2及以前版本的退出方法
2011-05-30 14:16 1201首先,在首个activity中写: Intent inten ... -
缩放图片的方法
2011-05-26 15:35 1072代码一: public Bitmap ResizeBi ... -
Android对图片的压缩读取和保存
2011-05-26 12:46 1720在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
android显示单位
2011-05-19 16:10 956px (pixels)像素 一般HVGA代表320 ... -
申请Google Map密钥
2011-05-17 15:25 17081.启动eclipse,依次单 ... -
SharedPreferences
2011-05-17 14:16 1254package wyf.wpf;//声明包语句 imp ... -
Content Provider
2011-05-17 11:54 1092package wyf.wpf; //声明包 ... -
轻量级数据库SQLite
2011-05-17 11:29 1186MySQLiteHelper.java im ... -
读取Rescource和asset文件夹中的文件
2011-05-17 11:01 5197package wyf.wpf; //声明包 ... -
数据存储之IO
2011-05-17 10:54 959package wyf.wpf; import jav ... -
android 检测当前网络并调用系统设置
2011-05-12 10:07 1669/** * 检测网络是否可用 */ pu ... -
Android 菜单(Menu)控件的使用
2011-05-11 14:05 712有两种方法,可以创建。 1.通过xml来创建 ...
相关推荐
Gallery相册浏览.zip
这是一个画廊Gallery,用于图片的查看,可用于相册,有源代码。
图片相册gallery响应式模板是一款全屏自适应HTML5模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
Android利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片)
Android利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片).rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
如果想为你的WordPress找个相册插件,那么NextGEN Gallery插件最适合了,功能很强大,提供了很完美的照片管理方法,操作也并不复杂。Look一下NextGEN Gallery可实现的功能吧: 可以通过拖拉进行相册的排序,跟 ...
Gallery相册浏览
Android完美自定义RecyclerView实现类似Gallery的相册效果
NULL 博文链接:https://as3.iteye.com/blog/1190477
jQuery Gallery Viewer-相册
Flash读取php的xml形式输出相册图片源码,Dynamic Flash Gallery 开源相册图片直读版,运行于PHP环境,使用时只需设定图片目录,相册会自动读取目录中的图片,然后将图片组织起来,并生成一个带滑块浏览功能的相册。...
Gallery相册浏览.rar
优秀的相册程序Coppermine Photo Gallery
简单网络相册CSS模板_简单 网络 相册 Gallery 图片 窄.rar
黑色大气的图片相册模板_黑色 大气 图片 相册 Gallery 简洁.rar
Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。通过plus.gallery获取相册管理对象。IO模块管理本地文件系统,用于对文件系统的目录浏览、文件的读取、文件的写入等...
Android应用源码之Gallery相册浏览.rar