您的位置:首页 > 其它

Fresco初探-使用Fresco显示图片

2015-04-08 21:52 134 查看

感谢FaceBook,感谢GitHub

GitHub上的Fresco

英文开发文档

中文开发文档

Fresco简单介绍

FaceBook发布了更好的图片加载库,是开源的。

我简单介绍如何使用这个库

以下操作都在Android Studio中,默认你使用这个IDE。并且熟悉Gradle

下载

Gradle

apply plugin: 'com.android.application'

//必要的
repositories {
mavenCentral()
}

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
applicationId "com.example.albert.frescodemo"
minSdkVersion 11
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
//dependencies中要加上第三行的
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.facebook.fresco:fresco:0.1.0+'
}


添加完了,AS就会根据Gradle中的内容自动下载这个库了。比Ecplise方便许多,更多功能还在研究

可能另外一个build.gradle中也要添加mavenCentral(),猜的

Fresco中图片的View是 SimpleDraweeView

使用的准备工作

需要在Application中初始化Fresco

public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}


在XML中添加SimpleDraweeView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent">

<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="600dp"
fresco:placeholderImage="@drawable/ic_launcher"
fresco:failureImage="@drawable/failure_image"
fresco:progressBarImage="@drawable/progress_bar"
/>

</LinearLayout>


能看到在这里我加上了

xmlns:fresco="http://schemas.android.com/apk/res-auto"


另外

fresco:placeholderImage="@drawable/ic_launcher"


是必要的,其他的选填。与ImageView相同,这些参数都可以在Java代码中设置。

为SimpleDraweeView 加载图片

public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listview1,null);
holder.draweeView = (SimpleDraweeView)convertView.findViewById(R.id.image_view);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
//在这里设置一个uri就可以了
holder.draweeView.setImageURI(mArray.get(position));
return convertView;
}


其他的缓存,自动释放内存,加载什么的。都不用你操心。

附上其整个流程图



GitHub上的DEMO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: