zoukankan      html  css  js  c++  java
  • 开始使用 Fresco

    如果你仅仅是想简单下载一张网络图片,在下载完成之前,显示一张占位图,那么简单使用 SimpleDraweeView 即可。

    在加载图片之前,你必须初始化Fresco类。你只需要调用Fresco.initialize一次即可完成初始化,在 Application 里面做这件事再适合不过了(如下面的代码),注意多次的调用初始化是无意义的。

    1
    2
    3
    4
    5
    6
    7
    8
    [MyApplication.java]
    public class MyApplication extends Application {
    	@Override
    	public void onCreate() {
    		super.onCreate();
    		Fresco.initialize(this);
    	}
    }
    

    做完上面的工作后,你需要在 AndroidManifest.xml 中指定你的 Application 类。为了下载网络图片,请确认你声明了网络请求的权限。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      <manifest
        ...
        >
        <uses-permission android:name="android.permission.INTERNET" />
        <application
          ...
          android:label="@string/app_name"
          android:name=".MyApplication"
          >
          ...
        </application>
        ...
      </manifest>
    

    在xml布局文件中, 加入命名空间:

    1
    2
    3
    4
    5
    6
    <!-- 其他元素-->
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:fresco="http://schemas.android.com/apk/res-auto"
        android:layout_height="match_parent"
        android:layout_width="match_parent">
    

    加入SimpleDraweeView:

    1
    2
    3
    4
    5
    6
    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/my_image_view"
        android:layout_width="130dp"
        android:layout_height="130dp"
        fresco:placeholderImage="@drawable/my_drawable"
      />
    

    开始加载图片:

    1
    2
    3
    Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
    SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
    draweeView.setImageURI(uri);
    

    剩下的,Fresco会替你完成:

    • 显示占位图直到加载完成;
    • 下载图片;
    • 缓存图片;
    • 图片不再显示时,从内存中移除;

    等等等等。

  • 相关阅读:
    Webkit是如何加载网页的
    代码无错是优? 工厂模式
    JavaScript 记忆 Memoization
    输入一个新的网址后到完全显示页面,浏览器做了哪些工作?
    向服务器请求数据的五种技术
    setTimeout(0) 即将退役
    JS 对象机制深剖——new 运算符
    正则表达式中的回溯
    闭包与柯里化
    正则表达式工作原理
  • 原文地址:https://www.cnblogs.com/huolongluo/p/6094802.html
Copyright © 2011-2022 走看看