- 浏览: 638088 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
luo_ganlin:
别的不多说,点个赞!
关于Android隐式启动Activity -
IWSo:
谢楼主!研究了好久,原来是这样!
android中如何让LinearLayout实现点击时背景图片切换 -
fantao005x:
粘帖的不错
android中如何让listview的内容全部显示出来 -
learner576539763:
Android_gqs 写道请问博主,Viewstub 可实现 ...
android中ViewStub使用 -
goontosoon:
抄的什么啊,狗屁不通
对ContentProvider中getType(Uri uri)
在新浪微博的微博列表中的图片,为了加速其显示也未了加快程序的响应,可以参考该图片异步加载类实现。 在Adapter中使用的方法为:
//SoftReference是软引用,是为了更好的为了系统回收变量
private HashMap<String, SoftReference<Drawable>> imageCache;
public AsyncImageLoader() {
imageCache = new HashMap<String, SoftReference<Drawable>>();
}
public Drawable loadDrawable(final String imageUrl,final ImageView imageView, final ImageCallback imageCallback){
if (imageCache.containsKey(imageUrl)) {
//从缓存中获取
SoftReference<Drawable> softReference = imageCache.get(imageUrl);
Drawable drawable = softReference.get();
if (drawable != null) {
return drawable;
}
}
final Handler handler = new Handler() {
public void handleMessage(Message message) {
imageCallback.imageLoaded((Drawable) message.obj, imageView,imageUrl);
}
};
//建立新一个新的线程下载图片
new Thread() {
@Override
public void run() {
Drawable drawable = loadImageFromUrl(imageUrl);
imageCache.put(imageUrl, new SoftReference<Drawable>(drawable));
Message message = handler.obtainMessage(0, drawable);
handler.sendMessage(message);
}
}.start();
return null;
}
public static Drawable loadImageFromUrl(String url){
URL m;
InputStream i = null;
try {
m = new URL(url);
i = (InputStream) m.getContent();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Drawable d = Drawable.createFromStream(i, "src");
return d;
}
//回调接口
public interface ImageCallback {
public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl);
}
}
private AsyncImageLoader asyncImageLoader;
@Override
public int getCount() {
// TODO Auto-generated method stub
return wbList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return wbList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.weibo, null);
WeiBoHolder wh = new WeiBoHolder();
wh.wbicon = (ImageView) convertView.findViewById(R.id.wbicon);
wh.wbtext = (TextView) convertView.findViewById(R.id.wbtext);
wh.wbtime = (TextView) convertView.findViewById(R.id.wbtime);
wh.wbuser = (TextView) convertView.findViewById(R.id.wbuser);
wh.wbimage=(ImageView) convertView.findViewById(R.id.wbimage);
WeiBoInfo wb = wbList.get(position);
if(wb != null)
{
convertView.setTag(wb.getId());
wh.wbuser.setText(wb.getUserName());
wh.wbtime.setText(wb.getTime());
wh.wbtext.setText(wb.getText(), TextView.BufferType.SPANNABLE);
Drawable cachedImage = asyncImageLoader.loadDrawable(wb.getUserIcon(), wh.wbicon, new ImageCallback(){
public void imageLoaded(Drawable imageDrawable,ImageView imageView,String imageUrl){
imageView.setImageDrawable(imageDrawable);
}
});
if (cachedImage == null)
{
wh.wbicon.setImageResource(R.drawable.usericon);
}else{
wh.wbicon.setImageDrawable(cachedImage);
}
}
return convertView;
}
}
发表评论
-
EditText软键盘弹出问题解决
2013-02-26 23:10 1471当带有EditView的activity第一次进入时,第一 ... -
android中获取系统相关属性adb
2012-11-15 14:41 22021.查看系统相关属性可以通过: adb shell ... -
Android使用Intent传递复杂参数及复杂参数列表
2012-11-05 17:29 1640刚开始一直纠结于Intent只能put像int, ... -
解决P6200/P6800扩展卡第三方软件不可写的BUG
2012-11-05 17:01 1037从XDA看来的步骤:1. Using a root-e ... -
android 中跟actionbar相关的属性
2012-10-25 17:07 2485android:uiOptions 这个属性用于设置A ... -
source insight使用快捷键
2012-10-25 10:59 1561F5指定行号,实现行跳转,在遇到编译错误的时候,能特 ... -
android中推出应用比较有效率的方法
2012-10-11 16:57 1168添加一个全局变量作为程序退出的标记(boolean类型) ... -
declare-styleable的使用
2012-10-09 13:59 1182declare-styleable的使用 decl ... -
android程序安全的建议
2012-09-29 14:58 5321如果保证自己的 ... -
Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
2012-09-29 14:45 1082从 Java 5 开始,Java 提供了自己的线程池。线 ... -
android应用检测更新代码
2012-09-24 17:40 1857JAVA代码: UpdateManager.java ... -
adb命令详解
2012-09-19 15:04 2896Android adb的常用命令略解 Androi ... -
android中屏蔽其它系统按钮的dialog
2012-09-18 10:13 1657public class MyProgress ... -
如何给Scrollview里内容截屏并生成bitmap,注意:Scrollview里面内容较多有滚动了
2012-09-18 10:07 1650使用for循环递归累加其内部的子控件的高度: p ... -
wakelock的使用
2012-09-17 11:44 10088PowerManager.WakerLock是我分析St ... -
启动另外一个apk
2012-09-14 13:16 907这篇博文主要是获取其他apk程序的启动的主intent, ... -
android中全屏的方法
2012-09-14 13:04 9741.直接代码编写 @Override ... -
android:installLocation简析
2012-09-12 15:25 1124在Froyo(android 2.2,API Le ... -
外部apk启动启动另外一个apk
2012-09-06 17:54 1058public class TestingBroadc ... -
listview如何实现圆角
2012-09-05 17:32 1944首先呢,我们还是看几个示图:(这是360推出的一款天气预 ...
相关推荐
本资源包"Android实现从缓存中读取图片与异步加载功能类.zip"提供了关于如何在Android应用中实现这一功能的详细教程。下面将详细阐述相关知识点。 1. **图片缓存**: 图片缓存是为了提高应用性能,减少网络请求,...
本文实例讲述了Android实现从缓存中读取图片与异步加载功能类。分享给大家供大家参考,具体如下: 在新浪微博的微博列表中的图片,为了加速其显示也为了加快程序的响应,可以参考该图片异步加载类实现。 public ...
如果图片已经在缓存中,直接从缓存获取;否则启动异步任务加载图片。 5. 拖动时不加载:在ListView的OnScrollListener中,监听滚动事件。当用户在拖动时,取消当前正在加载的任务,防止不必要的加载。 四、优化策略...
"Android 图片缓存处理,及异步加载类"这个主题主要涵盖了两个关键知识点:图片缓存和异步加载。 首先,让我们深入了解一下图片缓存。在Android应用中,频繁地加载网络图片会导致用户体验下降,因为这会消耗大量的...
这个库提供了丰富的功能,可以方便地在Android Studio项目中集成,使得图片的异步加载和缓存变得简单高效。 首先,我们要理解为什么需要图片异步加载。在Android设备上,如果直接在主线程中加载图片,尤其是大图或...
安卓源码包android图片缓存&展示Android 异步加载图片等24个合集: ‘360全景查看demo.rar afinal框架实现图片的简单异步缓存加载.rar andengine中直接加载多张小图片合成一张大图片生成动画精灵.rar android gif...
在Xamarin开发中,异步加载和缓存图片是一项关键技术,它对于提高移动应用的性能和用户体验至关重要。异步加载允许应用在后台线程中处理图像数据,防止UI线程阻塞,确保用户界面始终保持流畅。而图片缓存则可以减少...
本文将深入探讨如何实现“Android网络和本地图片加载,支持异步加载并缓存”的技术要点。 首先,我们要理解为什么需要异步加载。在Android系统中,如果在主线程中执行耗时操作,如网络请求或大图片的解码,会导致UI...
在Android开发中,异步加载图片并进行缓存管理是一个重要的优化策略,它能有效提升用户体验,避免因为图片加载导致的界面卡顿。本话题主要围绕"android异步加载图片缓存释放"展开,我们将深入探讨如何实现这个功能...
"Android 异步加载图片缓存优化"是一个针对Android平台的解决方案,旨在提高用户体验,减少内存消耗,防止因大量图片加载导致的`OutOfMemoryError`(OOM)异常。 首先,我们要理解图片异步加载的重要性。在Android...
在Android应用开发中,开机动画以及图片的异步加载是两个重要的技术点,它们直接影响到用户的使用体验。本文将详细讲解如何实现Android应用的开机动画以及如何优化图片的异步加载,使得ListView滚动流畅。 一、...
本资料包主要讲解了如何使用`AsyncTask`进行异步加载图片,这对于在UI线程中保持流畅用户体验至关重要。 `AsyncTask`是Android SDK中的一个类,它为开发者提供了简单的多线程和回调功能。它的核心思想是将长时间...
这个"Android中实现异步加载图片的Demo"展示了如何在Android应用中高效地加载和显示图片,无论是从本地存储还是网络URL获取。 首先,我们需要理解Android主线程与工作线程的概念。主线程负责用户界面的交互,而工作...
当图片从网络加载后,先保存在内存缓存,下次需要时直接从内存读取,若内存中没有再从磁盘加载。 - **尺寸适配**:根据ImageView的实际大小加载相应尺寸的图片,避免加载大图导致内存消耗过高。 - **占位符和错误...
综上所述,"android Gridview 异步加载网络图片"是一个涉及Android UI设计、多线程编程、图片处理、缓存策略以及第三方库使用的综合主题。通过学习这个示例,开发者可以提升应用性能,提供更优质的用户体验。
5. **磁盘缓存**:除了内存缓存,图片库还会使用磁盘缓存,将图片保存到文件系统,下次加载时可直接从磁盘读取,减少网络请求。 6. **图片压缩与格式转换**:为了节省存储和带宽,可以考虑在加载前对图片进行压缩或...
3.1 **内存缓存**:在内存中存储图片的Bitmap对象,当再次请求同一图片时,直接从内存中获取,速度快但内存限制较大。 3.2 **磁盘缓存**:将图片数据存入文件系统,即使应用关闭后仍可快速读取。磁盘缓存可以缓解...
在Android开发中,异步批量下载图片并缓存是一个常见的需求,特别是在开发涉及大量图片展示的应用时,如社交应用、电商应用等。本教程将基于提供的Android例子源码,深入探讨如何实现这一功能。 首先,我们需要理解...