Androidオープンソースフレームワークのフレスコ

前書き

Frescoは、Androidアプリケーションで画像を表示するためのFacebookの最新の強力な画像ライブラリであり、ネットワーク、ローカルストレージ、およびローカルリソースから画像を読み込むことができます。ImageLoaderと比較すると、画像のダウンロード速度が速い、gif画像を読み込んで表示できるなど、多くの利点があり、優れた画像フレームです。

特徴

  • メモリ管理:5.0未満のシステムでは、Frescoは画像を特別なメモリ領域に配置します。もちろん、画像が表示されていない場合は、占有メモリが自動的に解放されます。これにより、APPがスムーズになり、画像メモリの使用によって引き起こされるOOMが減少します。メモリ割り当ては、システム匿名共有メモリを採用しています。
  • 共有メモリは、間違いなくプロセス間通信の最も有用な方法であり、IPCの最速の形式です。2つの異なるプロセスAとBの共有メモリは、同じ物理メモリがプロセスAとBのそれぞれのプロセスアドレス空間にマップされることを意味します。プロセスAは、共有メモリ内のデータに対するプロセスBの更新を即座に確認できます。その逆も同様です。複数のプロセスが同じメモリ領域を共有するため、何らかの同期メカニズムが必然的に必要になります。ミューテックスとセマフォの両方で問題ありません。
  • プログレッシブ画像の表示:プログレッシブ画像形式は、最初に大まかな画像の輪郭を表示し、次に画像のダウンロードが続くにつれて、徐々に鮮明な画像を表示します。これは、モバイルデバイス、特に低速のネットワークに最適で、ユーザーエクスペリエンスを向上させることができます。Gif図とWebP形式の読み込みをサポートします。
  • 画像の表示:
    1。センターフォーカスをカスタマイズします(顔などの画像の表示に非常に役立ちます)。
    2.角が丸い図、もちろん円でもOKです。
    3.ダウンロードが失敗したら、クリックして再度ダウンロードします。
    4.カスタムプレースホルダーマップ、カスタムオーバーレイ、またはプログレスバー。
    5.ユーザーがを押したときにオーバーレイを指定します。
  • 画像の読み込み:
    1。同じ画像に別のリモートパスを指定するか、ローカルキャッシュにすでに存在する画像を使用します。
    2.最初に低解像度の画像を表示し、高解像度の画像をダウンロードした後に高解像度の画像を表示します。
    3.読み込みが完了したときのコールバック通知。
    4.このマップでは、EXIFサムネイルがある場合、大きな画像が読み込まれる前にサムネイルを表示できます。
    5.画像をズームまたは回転します。
    6.ダウンロードした画像を処理します。

ダウンロードリンク

  • https://github.com/facebook/fresco
  • 公式サイト:http://fresco-cn.org/docs/index.html(場合によっては参考になります

サポートされているURI

  • リモート画像http://、https://
  • ローカルファイルfile://
  • コンテンツプロバイダーcontent://
  • アセットディレクトリのアセットasset://
  • resディレクトリのリソースres://
  • URIデータで画像データを指定します:mime / type; base64

共通API

ここに画像の説明を挿入
ここに画像の説明を挿入

使用手順

  • 依存関係を追加する
dependencies {
    
    
  // 在 API < 14 上的机器支持 WebP 时时,需要添加
  compile 'com.facebook.fresco:animated-base-support:0.14.1'
  // 支持 GIF 动图时,需要添加
  compile 'com.facebook.fresco:animated-gif:0.14.1'
  // 支持 WebP (静态图+动图)时,需要添加
  compile 'com.facebook.fresco:animated-webp:0.14.1'
  compile 'com.facebook.fresco:webpsupport:0.14.1'
  // 仅支持 WebP 静态图时,需要添加
  compile 'com.facebook.fresco:webpsupport:0.14.1'
  //这个必须要添加
  compile 'com.facebook.fresco:fresco:0.14.1'
}
  • アプリケーションでFrescoを初期化します
Fresco.initialize(this);
  • ネットワーク権限を構成する
<uses-permission android:name="android.permission.INTERNET"/>
  • xmlレイアウトファイルに名前空間を追加します
<!-- 其他元素-->
<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">
  • xmlファイルにSimpleDraweeViewを導入します
<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/my_image_view"
    android:layout_width="130dp"
    android:layout_height="130dp"

    fresco:placeholderImage="@drawable/my_drawable"
  />
  • Javaファイルへの画像の読み込みを開始します
//举例如下:
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);

ここに画像の説明を挿入
Demo地址:https://github.com/hzulwy/private-project/blob/master/src.rar

おすすめ

転載: blog.csdn.net/qq_36828822/article/details/104087877