- 浏览: 367224 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
loveskey:
找了好久,可算是找到了。感谢
dx.jar dx.bat -
zhaoyi168:
可以把工程的代码发给我吗?
ZJLN1982@yahoo.co ...
Athrun Demo -
ergodic09:
請問樓主 我目前在porting AR6003但是無法自己產生 ...
009-Android平台开发-WIFI function porting-WIFI功能移植 -
iedj99fei:
...
androi中xliff:g
ApkAsyncTask.java
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.view.View;
import android.view.View.OnClickListener;
/**
* AsyncTask中
* 第一个参数Apknfo和doInBackground(....)中的参数保持一致
* 第二个参数Bitmap和onProgressUpdate(...)中的参数保持一致,由publishProgress()传递该值
* 第三个参数Apknfo和onPostExecute(....)中的参数保持一致,也是doInBackground(....)返回值类型
* doInBackground(....)的返回值传给onPostExecute(....)执行,也即是onPostExecute(....)的参数
* @author huangqin
*
*/
public class ApkAsyncTask extends AsyncTask<ApkInfo, Integer, ApkValue>{
private ViewHolder mHolder;
private ApkValue mApkValue;
private Context mContext;
private ApkInfo mApkInfo;
public ApkAsyncTask(Context context, ViewHolder holder) {
this.mContext = context;
mHolder = holder;
mApkValue = new ApkValue();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected ApkValue doInBackground(ApkInfo... params) {
mApkInfo = params[0];
mApkValue.setApkPic(resolverApkPic(mApkInfo.getApkItemPicUrl())); // download picture from internet
mApkValue.setApkName(mApkInfo.getApkItemName());
mApkValue.setApkFile(mApkInfo.getApkFileUrl());
//publishProgress(mBitmap);
return mApkValue;
}
@Override
protected void onPostExecute(ApkValue result) {
// refresh UI
mHolder.contentItemPic.setImageBitmap(result.getApkPic());
mHolder.contentItemName.setText(result.getApkName());
/*mHolder.contentItemDownload.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
}
});*/
super.onPostExecute(result);
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected void onCancelled() {
super.onCancelled();
}
private Bitmap resolverApkPic (String apkPicUrl) {
URL tmpURL;
Bitmap bmap = null;
// from http service
try {
tmpURL = new URL(apkPicUrl);
HttpURLConnection conn = (HttpURLConnection) tmpURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
bmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
// from sdcard
/*bmap = BitmapFactory.decodeFile(apkPicUrl);
int apkPicWidth = (int)(mWinWidth * 0.25);
int apkPicHeight = (int)(mWinHeight * 0.11);
bmap.createScaledBitmap(bmap, apkPicWidth, apkPicHeight, true);*/
if(bmap==null)
bmap=BitmapFactory.decodeResource(mContext.getResources(), R.drawable.loading);
return bmap;
}
}
ViewHolder.java
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class ViewHolder {
ImageView contentItemPic;
TextView contentItemName;
ImageButton contentItemDownload;
}
ApkValue.java
import android.graphics.Bitmap;
public class ApkValue {
private Bitmap mApkPic;
private String mApkName;
private String mApkFile;
public ApkValue() {
}
public Bitmap getApkPic() {
return mApkPic;
}
public void setApkPic(Bitmap bitmap) {
mApkPic = bitmap;
}
public String getApkName() {
return mApkName;
}
public void setApkName(String name) {
mApkName = name;
}
public String getApkFile() {
return mApkFile;
}
public void setApkFile(String fileUrl) {
mApkFile = fileUrl;
}
}
在UI界面初始化ApkAsyncTask,并执行execute方法。如下:
ApkAsyncTask mApkAsyncTask = null;
ViewHolder mHolder = new ViewHolder();
private ApkInfo mApkInfo = null; // A apk
private ArrayList<ApkInfo> mApkInfoList = null; // The total apks
mHolder = (ViewHolder)convertView.getTag();
mApkInfo = mApkInfoList.get(position);
mApkAsyncTask = new ApkAsyncTask(mContext, mHolder);
mApkAsyncTask.execute(mApkInfo);
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.view.View;
import android.view.View.OnClickListener;
/**
* AsyncTask中
* 第一个参数Apknfo和doInBackground(....)中的参数保持一致
* 第二个参数Bitmap和onProgressUpdate(...)中的参数保持一致,由publishProgress()传递该值
* 第三个参数Apknfo和onPostExecute(....)中的参数保持一致,也是doInBackground(....)返回值类型
* doInBackground(....)的返回值传给onPostExecute(....)执行,也即是onPostExecute(....)的参数
* @author huangqin
*
*/
public class ApkAsyncTask extends AsyncTask<ApkInfo, Integer, ApkValue>{
private ViewHolder mHolder;
private ApkValue mApkValue;
private Context mContext;
private ApkInfo mApkInfo;
public ApkAsyncTask(Context context, ViewHolder holder) {
this.mContext = context;
mHolder = holder;
mApkValue = new ApkValue();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected ApkValue doInBackground(ApkInfo... params) {
mApkInfo = params[0];
mApkValue.setApkPic(resolverApkPic(mApkInfo.getApkItemPicUrl())); // download picture from internet
mApkValue.setApkName(mApkInfo.getApkItemName());
mApkValue.setApkFile(mApkInfo.getApkFileUrl());
//publishProgress(mBitmap);
return mApkValue;
}
@Override
protected void onPostExecute(ApkValue result) {
// refresh UI
mHolder.contentItemPic.setImageBitmap(result.getApkPic());
mHolder.contentItemName.setText(result.getApkName());
/*mHolder.contentItemDownload.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
}
});*/
super.onPostExecute(result);
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected void onCancelled() {
super.onCancelled();
}
private Bitmap resolverApkPic (String apkPicUrl) {
URL tmpURL;
Bitmap bmap = null;
// from http service
try {
tmpURL = new URL(apkPicUrl);
HttpURLConnection conn = (HttpURLConnection) tmpURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
bmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
// from sdcard
/*bmap = BitmapFactory.decodeFile(apkPicUrl);
int apkPicWidth = (int)(mWinWidth * 0.25);
int apkPicHeight = (int)(mWinHeight * 0.11);
bmap.createScaledBitmap(bmap, apkPicWidth, apkPicHeight, true);*/
if(bmap==null)
bmap=BitmapFactory.decodeResource(mContext.getResources(), R.drawable.loading);
return bmap;
}
}
ViewHolder.java
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class ViewHolder {
ImageView contentItemPic;
TextView contentItemName;
ImageButton contentItemDownload;
}
ApkValue.java
import android.graphics.Bitmap;
public class ApkValue {
private Bitmap mApkPic;
private String mApkName;
private String mApkFile;
public ApkValue() {
}
public Bitmap getApkPic() {
return mApkPic;
}
public void setApkPic(Bitmap bitmap) {
mApkPic = bitmap;
}
public String getApkName() {
return mApkName;
}
public void setApkName(String name) {
mApkName = name;
}
public String getApkFile() {
return mApkFile;
}
public void setApkFile(String fileUrl) {
mApkFile = fileUrl;
}
}
在UI界面初始化ApkAsyncTask,并执行execute方法。如下:
ApkAsyncTask mApkAsyncTask = null;
ViewHolder mHolder = new ViewHolder();
private ApkInfo mApkInfo = null; // A apk
private ArrayList<ApkInfo> mApkInfoList = null; // The total apks
mHolder = (ViewHolder)convertView.getTag();
mApkInfo = mApkInfoList.get(position);
mApkAsyncTask = new ApkAsyncTask(mContext, mHolder);
mApkAsyncTask.execute(mApkInfo);
发表评论
-
eclipse中安装插件地址
2014-03-07 15:08 760http://subclipse.tigris.org/up ... -
ubuntu13下载android源码
2014-02-27 18:23 644一、注意repo的正确地址 repo:curl " ... -
用例无法运行,报如下错:Exception during suite construction
2014-02-26 15:47 1274一 前提 1、 测试工程中的所有参数已配置好,如ins ... -
Jython调用自定义jar包中的接口
2014-01-26 10:37 4195<!--[if !supportLists]--> ... -
dx.jar dx.bat
2013-06-17 19:33 2267Android SDK中dx.jar, dx.bat文件的备份 ... -
Please ensure that adb is correctly located..... 问题
2013-04-16 09:44 972解决方法: 方法一、查毒杀毒,也许了病毒占用了adb ... -
PC端通过adb与设备端通信
2013-03-28 09:36 1524adb 全称Android Debug Bri ... -
有用网站
2013-02-28 11:09 953http://www.java2v.com/CN/Tuto ... -
Unable to execute dex: Multiple dex files define Lorg/taptwo/android/widget/Circ
2013-02-21 15:07 2585问题:[2013-02-21 15:01:02 - Dex ... -
android viewTree and decorView
2013-01-30 13:55 1702Android ViewTree and DecorView ... -
No active compatible AVD's or devices found. Relaunch this configuration after c
2013-01-29 10:56 8765问题:No active compatible AVD's ... -
代码对比工具
2013-01-24 15:33 656windows: http://www.scooterso ... -
android最新源码下载
2013-01-23 09:57 1054源码下载:https://source.android.co ... -
Run MonkeyTalk Scripts via Ant in Windows
2012-12-18 20:24 1288Run MonkeyTalk Scripts via ... -
Android中cpu,memory,Battery的计算
2012-11-20 19:59 66161 Memory的分配(RAM而非ROM) 网址: •ht ... -
http://code.taobao.org/p/TMTS/src/
2012-10-12 17:38 1036http://code.taobao.org/p/TMTS/s ... -
string.xml文件中的特殊符号转换符
2012-09-24 09:09 783strings.xml文件中需要对特殊符号(如%,'等)进行转 ... -
web server 中设置wifi代理
2012-09-24 09:07 901DefaultHttpClient httpClient = ... -
Android开发一些常见问题
2012-09-24 09:06 7481:当追踪问题时,代码中实在找不出问题所以,代码的逻辑完全正确 ... -
将log信息写入sdcard
2012-07-05 17:14 877File mFile; private void write ...
相关推荐
以上就是关于“Android异步加载网络图片”这一主题的主要知识点,理解并掌握这些内容,对于开发出流畅、高效的Android应用至关重要。在实际项目中,开发者可以根据需求选择合适的库或方法,确保图片加载的高效性和...
以下是对"android异步加载网络图片"这个主题的详细解析。 一、异步处理的重要性 在Android系统中,主线程主要负责处理用户交互,如果在主线程中执行耗时操作(如网络请求或图片解码),会阻塞UI更新,导致应用出现...
以上就是关于“Android异步加载网络图片实例”的核心知识点,通过理解并熟练运用这些技术,可以提升应用的性能和用户体验。在实际项目中,可以根据需求选择最适合的库和策略,结合最佳实践来优化图片加载流程。
在Android应用开发中,异步加载网络图片是...总之,Android异步加载网络图片结合LruCache和线程回调是一种高效且实用的策略,可以显著提升应用的性能和用户体验。理解并掌握这些知识点对于Android开发者来说至关重要。
"android异步加载网络图片插件"就是为了解决这个问题而诞生的一个开源库,它能够在不阻塞主线程的情况下,高效、智能地加载并显示网络上的图片。这个库在GitHub上广受欢迎,因其强大的功能和良好的性能优化而被广泛...
总结来说,实现"android异步加载网络图片到ListView"涉及到以下几个关键步骤: 1. 使用AsyncTask或其他异步处理方式在后台线程加载网络图片。 2. 应用ViewHolder模式优化ListView的滚动性能。 3. 自定义Adapter,...
总的来说,"android异步加载网络图片,双缓存内存加sd卡缓存 绝对不会出现内存溢出oom"这个主题涉及到的关键技术包括异步编程、内存管理、缓存策略以及图片处理。通过合理的实践和优化,我们可以创建出一个高效、...
### Android异步加载网络图片的实现 #### 实现思路与技术要点 在Android开发中,为了提高用户体验并避免UI阻塞,通常会采用异步加载的方式处理网络请求,特别是加载图片资源时。以下是对该实践的技术要点进行的...
在Android开发中,异步加载网络图片是一项...总结起来,Android异步加载网络图片的核心是利用多线程和消息机制,确保图片加载过程不会阻塞主线程。通过合理地运用这些技术,开发者可以构建出流畅且高效的图片加载体验。
5. **异步加载图片** 使用`DisplayImage`方法加载网络图片到ImageView: ```java ImageLoader.getInstance().displayImage(imageUrl, imageView, options); ``` 这里的`imageUrl`是网络图片的URL,`imageView`...
在这个"Android异步加载图片例子"中,我们将探讨如何在Android应用中实现这一功能。 首先,我们需要理解Android的主线程(UI线程)与工作线程的区别。主线程负责处理用户界面交互,而工作线程则用于执行耗时操作,...
在Android应用开发中,图片加载是一项常见的任务,尤其是在处理大量图片或者网络图片时,为了提供良好的用户体验,我们通常会采用异步加载的方式。本篇将深入探讨Android平台上的图片异步加载策略,以及如何加载网络...
2. ** 异步加载图片的重要性** - 直接在主线程加载网络图片会导致应用卡顿,用户体验下降,因为主线程负责处理用户交互和UI更新。 - 异步加载是在后台线程执行耗时操作,如下载和解码图片,然后在主线程更新UI,...
android Gallery实现异步加载网络图片 并只加载当前停止页面图
综上所述,Android异步加载图片和缓存策略是提升应用性能的关键技术。通过合理使用工作线程和缓存机制,可以显著改善用户体验,降低系统负载。在实际开发中,选择合适的图片加载库,并结合最佳实践,能够帮助我们...
"Android异步加载图片"是一个常见的需求,它涉及到用户体验优化、内存管理以及线程安全等多个方面。这里我们将深入探讨这个主题,并结合提供的"ImageLoader-develop"可能是一个图片加载库的源码,来讲解相关的知识点...
缓存机制是异步加载图片中的重要组成部分,分为内存缓存和磁盘缓存。内存缓存能快速响应图片请求,但当内存不足时会被系统回收。磁盘缓存则可以长期保存图片,即使应用关闭后仍能复用,但读取速度相对较慢。通过合理...
本资料包主要讲解了如何使用`AsyncTask`进行异步加载图片,这对于在UI线程中保持流畅用户体验至关重要。 `AsyncTask`是Android SDK中的一个类,它为开发者提供了简单的多线程和回调功能。它的核心思想是将长时间...
然后,我们需要创建一个自定义的`Gallery`适配器,这个适配器会负责获取每个图片的URL,并使用`Glide`异步加载图片: ```java public class ImageAdapter extends BaseAdapter { private Context context; ...