仿微信朋友圈图片预览自定义View

1、先来看看效果




2、使用方法

在xml中添加如下代码:


xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.imagepreviewdemo.MainActivity">
    
    
    
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/black"
        android:id="@+id/bg">FrameLayout>
    
    
    <com.imagepreviewdemo.view.ImagesPreView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/preView"
        >com.imagepreviewdemo.view.ImagesPreView>

FrameLayout>


在activity的onCreate()中初始化


 
   
final ImagesPreView preView=(ImagesPreView)findViewById(R.id.preView);
final FrameLayout backGround=(FrameLayout)findViewById(R.id.bg);
//添加图片资源
Listresources=new ArrayList();
resources.add(R.drawable.timg_1);
resources.add(R.drawable.timg_2);
resources.add(R.drawable.timg_3);
//初始化
preView.setResources(resources,getSupportFragmentManager());
//设置当前显示的图片
preView.setCurrentItem(0);
//设置背景View,会随着图片向下滑动渐隐
preView.setBackGroundView(backGround);
//设置图片向下滑动事件监听
preView.setOnScrollListener(new ScaleImagView.OnScrollListener() {
    @Override
    public void onScroll(float scroll) {
        //scroll值为向下滑动的距离和屏幕总高度百分比,值0~100之间
        if (scroll>50){
            //当图片向下滑动的距离超过50%的屏幕总高度时,设置打开松开手指时的事件监听
            preView.setTouchUpEnable(true);
        }
    }
});
//松开手指时的事件监听,如果没有设置preView.setTouchUpEnable(true),以下方法将不会被执行
preView.setOnTouchUpListener(new ScaleImagView.OnTouchUpListener() {
    @Override
    public void onTouchUp() {
    }
});
//设置图片滑动监听
preView.setOnImageChangeListener(new ImagesPreView.OnImageChangeListener() {
    @Override
    public void OnImageChange(int position) {

    }
});

 
  
除了传drawable资源以外还可以传url资源
ListurlStrings=new ArrayList<>();
urlStrings.add("http://192.168.1.39:90/Photos/a.png");
urlStrings.add("http://192.168.1.39:90/Photos/b.png");
preView.setFilesOrUrl(urlStrings,getSupportFragmentManager());


本地file资源

ListfilePaths=new ArrayList<>();
filePaths.add("/storage/sdcard0/a.png");
filePaths.add("/storage/sdcard0/b.png");
preView.setFilesOrUrl(filePaths,getSupportFragmentManager());


3、用到的开源框架

Glide


4、源码地址

欢迎勘误

点击打开链接








你可能感兴趣的:(自定义View,android,自定义View,仿微信朋友圈预览图)