Afianl加载网络图片(延续)
上一页“已经谈到了如何使用Afianl网络负载的图片和下载文件,本文将继续介绍使用Afinal使用网络负载图片,主绑定listview采用:
看效果图:
listview在滑动过程中没用明显卡顿,非常流畅,这点优化的非常不错。Afianl使用前当然是要先加入jar包啦,接下来看代码:
activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" > <ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fadingEdge="none"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:dividerHeight="10dp" /> </RelativeLayout>
listview的条目布局list_item.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" > <ImageView
android:id="@+id/img"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" /> </LinearLayout>
MainActivity:
package com.example.afinaltest2; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import net.tsz.afinal.FinalBitmap;
import android.os.Bundle;
import android.app.Activity;
import android.widget.ImageView;
import android.widget.ListView; public class MainActivity extends Activity { ImageView img=null;
FinalBitmap finalBitMap=null;
ListView listview;
ListAdapter listAdapter;
HashMap<String, String> map ;
ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); String[] imgurl={
"http://a.hiphotos.baidu.com/image/pic/item/1f178a82b9014a90e68f8138ab773912b21bee86.jpg",
"http://f.hiphotos.baidu.com/image/pic/item/b58f8c5494eef01faf8fd3dde2fe9925bc317d0b.jpg",
"http://imgt8.bdstatic.com/it/u=2,687769429&fm=25&gp=0.jpg",
"http://imgt6.bdstatic.com/it/u=2,687777173&fm=25&gp=0.jpg",
"http://imgt7.bdstatic.com/it/u=2,687769721&fm=25&gp=0.jpg",
"http://imgt7.bdstatic.com/it/u=2,687776524&fm=25&gp=0.jpg",
"http://h.hiphotos.baidu.com/image/pic/item/1b4c510fd9f9d72a2fd4db05d62a2834349bbb72.jpg",
"http://imgt6.bdstatic.com/it/u=2,687777467&fm=25&gp=0.jpg",
"http://a.hiphotos.baidu.com/image/pic/item/a5c27d1ed21b0ef4fb685fdbdfc451da80cb3eb7.jpg",
"http://d.hiphotos.baidu.com/image/pic/item/0b7b02087bf40ad141490d60552c11dfa8ecce80.jpg",
"http://g.hiphotos.baidu.com/image/pic/item/03087bf40ad162d9cc4ab20413dfa9ec8a13cd06.jpg",
"http://imgt7.bdstatic.com/it/u=2,687775967&fm=25&gp=0.jpg",
"http://imgt8.bdstatic.com/it/u=2,687775693&fm=25&gp=0.jpg",
"http://imgt9.bdstatic.com/it/u=2,686139825&fm=25&gp=0.jpg",
"http://imgt7.bdstatic.com/it/u=2,687769677&fm=25&gp=0.jpg",
"http://d.hiphotos.baidu.com/image/pic/item/0bd162d9f2d3572c22bf5b598813632763d0c3d2.jpg"
}; img=(ImageView) findViewById(R.id.img); listview=(ListView) findViewById(R.id.listview); for(int i=0;i<15;i++){
map = new HashMap<String, String>();
map.put("imgurl", imgurl[i]);
listItem.add(map);
} listAdapter=new ListAdapter(this, listItem);
listview.setAdapter(listAdapter); } }
MainActivity未继承FianlActivity即未用注解方式。只是大家能够使用这样的方式;
ListAdapter:
package com.example.afinaltest2; import java.util.ArrayList;
import java.util.HashMap; import net.tsz.afinal.FinalBitmap; import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView; public class ListAdapter extends BaseAdapter { private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;
public FinalBitmap imageLoader; public ListAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=FinalBitmap.create(activity.getApplicationContext());
imageLoader.configLoadingImage(R.drawable.default_img);
} public int getCount() {
return data.size();
} public Object getItem(int position) {
return position;
} public long getItemId(int position) {
return position;
} public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_item, null); ImageView img = (ImageView) vi.findViewById(R.id.img); HashMap<String, String> map = new HashMap<String, String>();
map = data.get(position); imageLoader.display(img, map.get("imgurl")); return vi;
} }
当中,
imageLoader.configLoadingImage(R.drawable.default_img);
是设置图片载入未完毕时显示的默认图片。最后依旧不要忘了加权限。
使用Afianl框架时。不要仅仅是将当中的方法拿来使用就算了。要学习它的编程思想,去思考为什么用这样的方法。也能够指出它的不足之处。达到学因此,使用,而不是盲目的拿来主义。
版权声明:本文博主原创文章。博客,未经同意不得转载。
Afianl加载网络图片(延续)的更多相关文章
- Afianl加载网络图片(续)
上一篇已经讲了如何利用Afianl加载网络图片和下载文件,这篇文章将继续讲解使用Afinal加载网络图片的使用,主要结合listview的使用: 看效果图: listview在滑动过程中没用明显卡顿, ...
- 【WPF】wpf image控件加载网络图片不显示问题,
1.加载网络图片到内存system.drawing.image对象中2.内存中的image 转Bitmap 再转适合system.windows.controls.image 的BitmapImage ...
- 有关DTCoreText无法加载网络图片及应用问题
至于DTCoreText是干嘛的,不清楚的同学自行网上脑补,这就不啰嗦了,只说一下其用法. 里面有三种控件供大家使用,DTAttributedTextView, DTAttributedLabel 和 ...
- [原创]cocos2dx加载网络图片&异步加载图片
[动机] 之前看到一款卡牌游戏,当你要看全屏高清卡牌的时候,游戏会单独从网络上下载,本地只存了非高清的,这样可以省点包大小,所以我萌生了实现一个读取网络图片的类. [联想] 之前浏览网页的时候经常看到 ...
- SDWebImage 加载网络图片失败,重新运行,就能加载成功。
现象: 使用SDWebImage 加载网络图片,偶尔会有一两张图片就是显示不出来.重新运行有时又可以了. 这个问题的原因是: 当SDWebImage 在加载图片的时候 我用的是- (void)sd_s ...
- Android Volley入门到精通:使用Volley加载网络图片
在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法.本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完 ...
- Android三种基本的加载网络图片方式(转)
Android三种基本的加载网络图片方式,包括普通加载网络方式.用ImageLoader加载图片.用Volley加载图片. 1. [代码]普通加载网络方式 ? 1 2 3 4 5 6 7 8 9 10 ...
- 仿微信朋友圈图片查看-glide加载网络图片,photoview 实现缩放
http://www.cnblogs.com/csonezp/p/5083286.html 这里实现的效果就和微信朋友圈点击图片后查看大图一样,如果你不清楚是什么效果,可以拿出手机,打开朋友圈,找到一 ...
- android官方开源的高性能异步加载网络图片的Gridview例子
这个是我在安卓安卓巴士上看到的资料,放到这儿共享下.这个例子android官方提供的,其中讲解了如何异步加载网络图片,以及在gridview中高效率的显示图片此代码很好的解决了加载大量图片时,报OOM ...
随机推荐
- LR翻页脚本并在每页实现业务操作
性能需求:在列表中删除后有记录,或对列表中的每条记录进行操作(如点击每条记录的“单号”进入订单详情页面,或在列表中对每条记录进行“启用”.“停止”操作) 举例:Vuser脚本模拟用户在订单列表中点击每 ...
- 初探HTML
就在今天我抱着试一试的态度稍微看了下HTML5, 尝试着接触一点新知识, 虽然学的并不多, 但是还是异常的兴奋, 感觉有好多东西和之前的不一样了, 包括控件的创建和一些属性的设置等, 总之这些变化与改 ...
- iOS中AutoLayer自动布局流程及相关方法【转】
转自:http://my.oschina.net/w11h22j33/blog/208574 关于UIView的Layer,IOS提供了三个方法: 1.layoutSubviews 在iOS5.1和之 ...
- WebApi2官网学习记录---JSON与XML的序列化
JSON序列化: WebAPI的默认序列库使用的是Json.NET,可以在Globally中配置使用DataContractJsonSerializer 进行序列化 protected void Ap ...
- .net中的特性
本文来之:http://hi.baidu.com/sanlng/item/afa31eed0a383e0e570f1d3e 在一般的应用中,特性(Attribute,以称为属性)好像被使用的不是很多. ...
- SQL Server链接MySQL实践
最近在访问多数据库的时候进行了SQLServer链接MySQL数据的实践,现总结如下: 一. 安装mysql-connector-odbc驱动: 1. 在SQL Server服务器的机器上安装mys ...
- 连接Oracle11g数据库时遇到无监听,网络适配器无法建立等问题的一些解决办法
最近在用Java做一个学生成绩管理系统,打算用Oracle数据库.由于原先没接触过Oracle,所以安装完数据库后,连接数据库时遇到各种问题,网上搜索解决方案还是没有解决时,又重新安装了几次.终于在前 ...
- 关于extern对变量的使用
extern 是声明全局的变量的意思. 例如在一个工程中有两个cpp,一个是test.cpp一个是main.cpp . 我们在test.cpp中定义了一个int num;但是我们在main.cpp中想 ...
- log4net 使用步骤
1.安装log4net 官网首页:http://logging.apache.org/log4net/ 下载地址:http://logging.apache.org/log4net/download_ ...
- jquery.BannerRotator.js
项目地址:https://github.com/snipertulip/BannerRotator 演示地址:http://snipertulip.github.io/BannerRotator/de ...