- 浏览: 73102 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangkuichina:
此event坐标单位是什么呢?
android view的触摸事件坐标 -
coolismonster:
正好用得到 谢谢分享
android文件夹管理器 -
shim:
HashMap不是线程安全的,这么搞有风险
Gallery异步加载图片 -
Lifehopeness:
谢谢分享
android自定义带多选框的listview并避免出现自动选中另外选项 -
czbnlzd920706:
Acitivity中 44行 stopS ...
android音乐播放器拖放播放进度设计
Gallery异步加载图片
activity:
Galleryd的自定义ImageAdapter:
加载图片线程LoadImageThread.java
例中使用到了URL,所以需要在AndroidManifest.xml添加相应的网络权限
OK,完事。
activity:
package org.hwq.gallery.activity; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.content.pm.ActivityInfo; import android.graphics.Bitmap; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; import android.widget.Gallery; public class Gallery1Activity extends Activity { public static HashMap<String,Bitmap> cache;//加载完毕的图片缓存到这里 private Gallery gallery; private List<String> imgUrl;//加载到gallery中的所有图片路径 @Override public void onCreate(Bundle savedInstanceState) { //全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置成全屏模式 //横屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//强制为横屏 //没标题 requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.main); //初始化操作 init(); } /** * 启动线程加载指定路径的图片到cache * @param url */ public void loadImage(String url){ new Thread(new LoadImageThread(url,cache)).start(); } /** * 初始化下缓存cache * 要加载到gallery中的图片路径 * 初始Gallery并设置其adapter */ public void init(){ cache = new HashMap<String, Bitmap>(); imgUrl = new ArrayList<String>(); imgUrl.add("http://fujian.xabbs.com/forum/201109/02/160646nn9hjjiimixvkxhe.jpg"); imgUrl.add("http://img1.cache.netease.com/catchpic/A/A9/A9D98040B397C366AE93E67871346561.jpg"); imgUrl.add("http://new.aliyiyao.com/UpFiles/Image/2011/01/13/nc_129393721364387442.jpg"); imgUrl.add("http://pic.viewpics.cn/2011/07/03/naichaMMzhangzetianzuixinzhaopian/18.jpg"); imgUrl.add("http://i1.sinaimg.cn/ent/m/c/2010-01-18/U1819P28T3D2847679F326DT20100118115712.jpg"); imgUrl.add("http://comic.sinaimg.cn/2011/0824/U5237P1157DT20110824161051.jpg"); imgUrl.add("http://t2.baidu.com/it/u=3142230130,2486626207&fm=52&gp=0.jpg"); imgUrl.add("http://t1.baidu.com/it/u=195272205,3957438954&fm=52&gp=0.jpg"); imgUrl.add("http://t2.baidu.com/it/u=2728825411,1745149447&fm=52&gp=0.jpg"); imgUrl.add("http://t3.baidu.com/it/u=4049625789,880707762&fm=52&gp=0.jpg"); imgUrl.add("http://t2.baidu.com/it/u=251271316,3044182410&fm=51&gp=0.jpg"); imgUrl.add("http://t2.baidu.com/it/u=1909869261,3407648852&fm=51&gp=0.jpg"); imgUrl.add("http://t2.baidu.com/it/u=3904233276,4064970722&fm=52&gp=0.jpg"); imgUrl.add("http://t3.baidu.com/it/u=179128931,289390833&fm=52&gp=0.jpg"); imgUrl.add("http://t3.baidu.com/it/u=67631552,1181502930&fm=52&gp=0.jpg"); imgUrl.add("http://t1.baidu.com/it/u=3156928874,2848088324&fm=51&gp=0.jpg"); imgUrl.add("http://t1.baidu.com/it/u=382878650,3995372735&fm=51&gp=0.jpg"); gallery = (Gallery) findViewById(R.id.gallery1); ImageAdapter adapter = new ImageAdapter(this, imgUrl); gallery.setAdapter(adapter); } }
Galleryd的自定义ImageAdapter:
package org.hwq.gallery.activity; import java.util.List; import android.content.Context; import android.graphics.Bitmap; 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 List<String> imgUrl; private Context context; public ImageAdapter(Context context,List<String> imgUrl){ this.imgUrl = imgUrl; this.context = context; } public int getCount() { return imgUrl.size(); } public Object getItem(int position) { return imgUrl.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(context); //从前面定义的cache中找到该路径下的图片 Bitmap map = Gallery1Activity.cache.get(imgUrl.get(position)); imageView.setLayoutParams(new Gallery.LayoutParams(800,400)); imageView.setScaleType(ImageView.ScaleType.FIT_XY); if(map == null){ //如果没加载的,则显示默认图片 imageView.setImageResource(R.drawable.ic_launcher); //如果没有加载,则启动线程其加载 ((Gallery1Activity)context).loadImage(imgUrl.get(position)); }else{ //如果加载了的,则设置到Imageview imageView.setImageBitmap(map); } return imageView; } }
加载图片线程LoadImageThread.java
package org.hwq.gallery.activity; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class LoadImageThread implements Runnable{ private String imageUrl; HashMap<String,Bitmap> cache; LoadImageThread(String url,HashMap<String,Bitmap> cache){ this.imageUrl = url; this.cache = cache; } public void run(){ try { System.out.println("开始加载"+imageUrl); //将指定的路径下的图片加载到定义的cache当中去 InputStream imageStream = new URL(imageUrl).openStream(); Bitmap map = BitmapFactory.decodeStream(imageStream); cache.put(imageUrl, map); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
例中使用到了URL,所以需要在AndroidManifest.xml添加相应的网络权限
<uses-permission android:name="android.permission.INTERNET"/>
OK,完事。
发表评论
-
DrawLayout几个注意点
2014-03-08 22:55 1428package com.example.navigationd ... -
layout_weight解惑
2014-02-20 13:25 0http://www.chess-ix.com/blog/th ... -
LayoutInflater注意事项
2014-02-20 10:52 0http://www.doubleencore.com/201 ... -
混淆掉Log.i输出
2013-12-26 15:42 0混淆配置文件加入 -assumenosideeffects c ... -
android TextView字体大小对应
2013-11-30 16:36 695设备信息:小米1 density=1.5, width=480 ... -
PopupWindow使用注意3点
2013-10-18 19:32 507使用PopupWindow注意点: ...... View v ... -
android 数据库同步
2013-10-14 13:35 1287package org.jerry; import or ... -
android singleTask几个注意点
2013-07-06 11:42 813android官网地址:http://developer.an ... -
转:WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法
2013-05-02 00:59 936文章原址:http://www.jcodecraeer.com ... -
Android onTouchEvent, onClick及onLongClick的调用机制
2013-04-28 02:21 0http://blog.csdn.net/ddna/artic ... -
Touch一些东西
2013-04-28 02:03 0package com.example.touchdemo; ... -
电话状态变化
2013-04-27 23:39 1807电话拨出,随后挂断 04- ... -
Toast重复利用
2013-04-26 00:10 1140package com.example.toastdemo; ... -
dp sp与px的相互转化
2013-04-23 01:19 0TextView.java /** * ... -
Android手机分辨率基础知识(DPI,DIP计算)
2013-04-22 22:57 0原文地址:http://blog.csdn.net/morui ... -
9.png NinePatchDrawable
2013-04-17 00:27 0地址: docs/tools/help/draw9patch. ... -
BaseAdapter
2013-04-16 09:43 0http://blog.csdn.net/pkxiuluo01 ... -
Android Intent的几种用法全面总结
2013-04-11 01:21 0Intent应该算是Android中特有的东西。你可以在Int ... -
Android中的Intent详细讲解
2013-04-11 01:18 0在一个Android应用中,主要是由四种组件组成的,这四种组件 ... -
PopupWindow
2013-04-26 00:11 1236PopupWindow,实质是使用WindowManager添 ...
相关推荐
Gallery异步加载图片和listView动态刷新 .rar
gallery实现异步加载图片demo解决卡的问题
android Gallery实现异步加载网络图片 并只加载当前停止页面图
Gallery异步加载当前页图片,记住Gallery滑动的时候不会去下载全部的图片,只有停留在当前页的图片才会下载加载,这样大大的节约了用户流量
android Gallery实现异步加载网络图片 并只加载当前停止页面图.zip
实现Gallery的异步加载图片,最完美简介的demo!
经典的异步加载 实现imagelist imagegride imagegallery imagepager 四种方式的图片异步加载
android Gallery实现异步加载网络图片 并只加载当前停止页面图.rar
Android利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片)
**Android项目:Gallery异步加载网络图片并仅加载当前页图片** 本项目为一款基于Android的Gallery应用,实现了异步加载网络图片的功能,同时具备仅加载当前停止页面图片的特性,有效节省用户流量和提高应用性能。 ...
Android应用源码 Gallery实现异步加载网络图片 并只加载当前停止页面图
Android应用源码Gallery实现异步加载网络图片,并只加载当前停止页面
Gallery使用AsyncTask异步批量加载图片,及每次异步加载5张图片
利用Galler利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片)y和ImageSwitcher实现在线相册图片预览功能(异步加载图片)