我是靠谱客的博主 迷人百合,这篇文章主要介绍图片缩放库 Photoview 和 Gif 控件GifView 的使用,现在分享给大家,希望可以做个参考。

一.Android PhotoView 和 GifView 的基本功能简介

1.hotoView的简介:这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点击放大缩小。支持在ViewPager中翻页浏览图片。
PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件。功能实用和强大。

2.GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目,其用法和 ImageView一样,支持gif图片。可监视GIF是否加载成功。

3.PhotoView的功能:

  • 图片浏览查看
  • 双指缩放
  • 单点触摸缩放
  • 图片缩放模式设置
4.GifView的功能:

  • 播放Gif图片
  • Gif动画监听

二.Android PhotoView 的用法

1.基本用法:
导入jar包,布局XML里设置PhotoView
将ImageView传入PhotoViewAttacher

2.代码演示:

使用 PhotoView进行网络图片和本地图片的加载,缩放和点击事件处理

BaseApplication.java

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.test.photoviewdemo; import java.io.File; import android.app.Application; import android.content.Context; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.QueueProcessingType; import com.nostra13.universalimageloader.utils.StorageUtils; public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); initImagloader(getApplicationContext()); } private void initImagloader(Context context) { File cacheDir = StorageUtils.getOwnCacheDirectory(context, "photoview/Cache");// 获取到缓存的目录地址 // 创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( context) // 线程池内加载的数量 .threadPoolSize(3).threadPriority(Thread.NORM_PRIORITY - 2) .memoryCache(new WeakMemoryCache()) .denyCacheImageMultipleSizesInMemory() .discCacheFileNameGenerator(new Md5FileNameGenerator()) // 将保存的时候的URI名称用MD5 加密 .tasksProcessingOrder(QueueProcessingType.LIFO) .discCache(new UnlimitedDiscCache(cacheDir))// 自定义缓存路径 // .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .writeDebugLogs() // Remove for release app .build(); // Initialize ImageLoader with configuration. ImageLoader.getInstance().init(config);// 全局初始化此配置 } }
MainActivity.java

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.test.photoviewdemo; import uk.co.senab.photoview.PhotoView; import uk.co.senab.photoview.PhotoViewAttacher; import uk.co.senab.photoview.PhotoViewAttacher.OnPhotoTapListener; import android.app.Activity; import android.os.Bundle; import android.view.View; import com.nostra13.universalimageloader.core.ImageLoader; /** * 加载网络图片和本地图片 * * PhotoView进行缩放处理 * * @author Administrator * */ public class MainActivity extends Activity { private PhotoView iv_photo; private PhotoViewAttacher attacher; private ImageLoader loader; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv_photo = (PhotoView) findViewById(R.id.iv_photo); attacher = new PhotoViewAttacher(iv_photo); // 加载本地图片,缩放处理 // try { // InputStream is = getAssets().open("photoview.jpg"); // Bitmap bm = BitmapFactory.decodeStream(is); // iv_photo.setImageBitmap(bm); // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // 加载网络图片 loader = ImageLoader.getInstance(); loader.displayImage("https://www.baidu.com/img/bdlogo.png", iv_photo); iv_photo.setOnPhotoTapListener(new OnPhotoTapListener() { @Override public void onPhotoTap(View arg0, float arg1, float arg2) { } }); } }


三.Android GifView 的用法

1.基本用法:
导入jar包
在xml中配置GifView的基本属性,GifView继承自View类,和Button、ImageView一样是一个UI控件
在代码中配置常用属性

2.代码演示:
使用 GifView进行网络Gif图片和本地Gif图片的加载和监听

布局文件

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" 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="com.example.admin.tempapplication.MainActivity"> <com.ant.liao.GifView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/view" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="171dp" /> </RelativeLayout>

代码逻辑

MainActivity.java

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.admin.tempapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.ant.liao.GifView; public class MainActivity extends AppCompatActivity{ GifView gifView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gifView=(GifView)findViewById(R.id.view); gifView.setGifImage(R.drawable.loadig); } }


最后

以上就是迷人百合最近收集整理的关于图片缩放库 Photoview 和 Gif 控件GifView 的使用的全部内容,更多相关图片缩放库内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部