PhotoDraweeView for Fresco

来源:互联网 发布:海马模拟器 for mac 编辑:程序博客网 时间:2024/06/17 09:11

photoview支持图片的缩放,但是使用fresco加载图片时,photoview是不支持的,而PhotoDraweeView 是支持fresco的。

这里写图片描述
使用:
1、添加依赖

compile 'me.relex:photodraweeview:1.1.0'compile 'com.facebook.fresco:fresco:0.10.0'

2、布局

<?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"              xmlns:tools="http://schemas.android.com/tools"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:gravity="center"              android:orientation="vertical"              android:paddingBottom="@dimen/activity_vertical_margin"              android:paddingLeft="@dimen/activity_horizontal_margin"              android:paddingRight="@dimen/activity_horizontal_margin"              android:paddingTop="@dimen/activity_vertical_margin"              tools:context=".view.MainActivity">    <me.relex.photodraweeview.PhotoDraweeView        android:id="@+id/pdv"        android:layout_width="234dp"        android:layout_height="350dp"        fresco:actualImageScaleType="fitXY"/></LinearLayout>

3、代码

public class MainActivity extends Activity {    PhotoDraweeView mPdv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mPdv = (PhotoDraweeView) findViewById(R.id.pdv);        setDataToPhotoView();    }    private void setDataToPhotoView() {        final PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder();        controller.setUri(Uri.parse("res://com.example.administrator.rxjavademo/" + R.mipmap.airport_map));        controller.setOldController(mPdv.getController());        controller.setControllerListener(new BaseControllerListener<ImageInfo>() {            @Override            public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {                super.onFinalImageSet(id, imageInfo, animatable);                if (imageInfo == null || mPdv == null) {                    return;                }                mPdv.update(imageInfo.getWidth(), imageInfo.getHeight());            }        });        mPdv.setController(controller.build());    }}
1 0