android 横向滚动图片,Android使用Photoview实现图片左右滑动及缩放功能
Android使用Photoview实现图片左右滑动及缩放功能
发布时间:2020-10-12 14:51:12
来源:脚本之家
阅读:119
作者:kuaizilanqiu
我想,不管是做什么样的app。一般都会涉及到图片点击方法,和左右滑动的功能吧。今天我就把自己的实现拿来分享一下。图片的加载用到了picasso的图片加载工具。
第一步:注入依赖
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.github.chrisbanes:PhotoView:1.3.0'
第二步,我们就来实现这个功能。多张图片左右滑动,这需要用到ViewPager这个类。
且看布局:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/iv_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
这里用到了自定义的ViewPager
public class HackyViewPager extends ViewPager {
public HackyViewPager(Context context) {
super(context);
}
public HackyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
try {
return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
e.printStackTrace();
return false;
}
}
}
这个是点击之后跳转到大图的Activity,来显示大图。最重要也是很简单的一步:
package uk.co.senab.photoview.sample;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;
public class PicassoSampleActivity extends AppCompatActivity {
ViewPager mViewPager;
//String position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple);
mViewPager = (HackyViewPager) findViewById(R.id.iv_photo);
setContentView(mViewPager);
mViewPager.setAdapter(new SamplePagerAdapter());
//position=getIntent().getStringExtra("position");
//设置默认的坐标,实际情况不要写死,只需点击哪张图片的position,并传过来接受就可以了,就默认显示点击图片的大图。
//mViewPager.setCurrentItem(Integer.parseInt(position));
mViewPager.setCurrentItem(2);
}
static class SamplePagerAdapter extends PagerAdapter {
//这里暂时写死了,实际情况中要从服务端获取图片地址结合,传过来
private static final String[] url = {"/media/Bist9mvIYAAeAyQ.jpg", "/album/whcrop%3D657%2C370%3Bq%3D90/sign=2c994e578a82b9013df895711cfd9441/09fa513d269759eede0805bbb2fb43166d22df62.jpg",
"/d/file/2013-11-14/13631d143b7076dc3257b1e516a2a9a2.jpg", "/f5/63/d/7.jpg"};
@Override
public int getCount() {
return url.length;
}
@Override
public View instantiateItem(ViewGroup container, int position) {
PhotoView photoView = new PhotoView(container.getContext());
final PhotoViewAttacher attacher = new PhotoViewAttacher(photoView);
Picasso.with(container.getContext())
.load(url[position])
.into(photoView, new Callback() {
@Override
public void onSuccess() {
attacher.update();
}
@Override
public void onError() {
}
});
container.addView(photoView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
return photoView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
}
有了这个工具我们很轻松就实现了图片点击放大,左右活动,缩放等功能。
android 横向滚动图片,Android使用Photoview实现图片左右滑动及缩放功能相关推荐
- Android横向滚动卡片,Android实现横向滑动卡片效果
Android实现横向滑动卡片效果 发布时间:2020-09-04 22:51:17 来源:脚本之家 阅读:255 作者:itbobby 最近项目上需要实现这样效果的一个页面,本来想找个现成的两下搞定 ...
- Android横向滚动卡片,Android滑动卡片成效:Swipecards
一个类似于 Tinder的Android库,用于创建滑动卡片效果. 您可以向左或向右滑动来切换喜欢或不喜欢的内容. //implement the onFlingListener public cla ...
- Android横向滚动卡片,Android仿探探卡片式滑动效果实现
前言 第一次进入探探软件界面,就被这种通过卡片式滑动来选择"喜欢/不喜欢"的设计所吸引了.当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路.不过毋庸置疑的是,这种效果 ...
- android 横向滚动 导航,仿今日头条横向滚动导航栏--原生js
咳咳!先打一波小广告,在上一篇里忘记了,那啥--我的那个个人博客做好了-->(我的博客) 好嘞,言归正传,说说我们的效果. 其实就是实现横向滑动,进行选择. 原理: 鼠标按下,获取当前鼠标坐标, ...
- android 横向滚动选择,HorizontalScrollSelectedView
横向滚动的,可以支持大量文本选择的 自定义View ,简单易用 , 无OOM情况 效果图 博客介绍 Downloadallprojects { repositories { ... maven ...
- Android 横向滚动列表 (类似横向ListView)
示例: 布局代码***.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- android 横向铺满,Android开发全程记录(八)——设置ImageView显示的图片铺满全屏(适应魅族等不常见屏幕比例)...
为适应不同屏幕的手机,ImageView显示的图片可能不铺满屏幕,如果定高的话,两边可能会出现空白.魅族手机就会有这种情况,在其他手机里显示正常,在魅族手机里显示,图片左右两边会出现空白,为解决这一问 ...
- Android横向滚动卡片,RecyclerView+CardView实现横向卡片式滑动效果
现在来介绍两种控件recyclerview和cardview,并通过实例将它们结合在一起实现一种横向卡片式滑动效果. 1.recyclerview recyvlerview是android sdk 新 ...
- android循环滚动textview,Android 循环上下滚动
最近在做项目的时候遇到了一个上下滚动文字的需求,在网上找到了一个自定义的TextView,但是切换效果很图片,没有滚动的效果,考虑到html的marquee效果添加到TextView中,无奈没有效果, ...
最新文章
- python3.7版本_Centos7升级Python3.7.3版本
- 基于问题导向与成果产出的教学模式:《大数据与城市规划》特色课程
- iOS11和机器学习CoreML库
- css实现倒8字效果
- php 表单录入,PHP 表单和用户输入
- leetcode面试题 04.12. 求和路径(dfs)
- python计算二维平面的曲线的曲率
- 面向对象的3个基本要素和5个基本设计原则(整理)
- 常用linux网络配置命令
- 你真的会用 VS Code 的 Ctrl、Shift和Alt吗?高效易用的快捷键:多光标、跳转引用等轻松搞定
- java编译命令是什么_java编译命令,java的编译命令是什么?
- 开源免费的pdf文档编辑器LibreOffice
- 计算机硬件性能检测报告,性能测试实验报告.doc
- python速成_速成python
- Juniper防火墙的HA(高可用性)配置
- A16.从零开始前后端react+flask - 将前端数据保存到数据库
- 电脑休眠、睡眠、待机的区别
- sql语句中的limit用法
- RabbitMQ-三、Java使用--3、路由选择 (Routing)
- 精读:REDQUEEN: Fuzzing with Input-to-State Correspondence
热门文章
- python菱形_python如何输出菱形与空心菱形详解与巧妙地使用center方法
- 免费python网络课程-python网络课程
- 零基础学python难吗-学习python12小时后,告诉你,学python真没你想的那么难!
- 用python画漂亮图-使用 Python/matplotlib 画出漂亮的论文插图
- 智能机器人语音ic丨智能玩具语音识别芯片丨机器人语音播报芯片丨AI语音提示芯片...
- 华哥讲堂:解析智能电视语音控制功能
- 【当贝市场】智能电视语音识别功能泄露隐私?
- 苹果测试集了成语音识别和人脸识别的智能家居?
- jQuery之animate自定义动画
- ActionScript 3.0 API 中的 Video 类