java 如何放大动画图,Android仿微信图片放大动画
#今年三月份直接上手做的android,代码写的不规范,有问题希望指出,谢谢(app数英)
类似于微信 图片浏览的效果,我的做法是在两个activity A\B之间传递图片的位置信息
思路:在activity A的list view上有一张图片,通过方法获取到此image view相对于 window 的坐标(也就是 距离手机屏幕上侧和左侧的距离),然后将这些参数传递给 activity B,此时activity B创建一个 image view,image view的宽高是 activity A 里点击的图片的宽高,然后设置 margin left margin top,此时就造成一种假象(activity a 的图片直接传递到了 activity B),下面就是 缩放代码
注意:根据你的代码 可能 activity a 里边计算出来的 上侧距离可能要减去 活着加上 状态条的高度,具体根据个人代码判断。
上边的 gif 只是粗略的演示,如有疑问,可以留言 一同解决
下边是部分主要代码:
#activity A
//获取上边距,左边距,以及图片宽高
//可能几个人计算出的margintop要减去 状态栏高度
int[] position = new int[2];
headerImageV.getLocationInWindow(position);
int margin_top = position[1];
int margin_left = position[0];
int width = headerImageV.getWidth();
int height = headerImageV.getHeight();
Intent intent = new Intent(getActivity(), EnlargeimagevActivity.class);
intent.putExtra(EnlargeimagevActivity.IMG_URL, personModel.getAvatar_320());startActivity(intent);
//由于是在已发布的项目上更改的代码,我这只是简单的演示, 所以没有做参数传递, 直接在b页面写死的
#activity B
//由于我使用的第三方库 PhotoView(处理图片放大缩小),实际上我的图片并不是正方形(我这边放大的图片和手机的比例一样),所以下边高度及 缩放比例的计算会出现不同
final int width = 495;
final int height = (int)((float)Constant.getScreenHeight(this)/Constant.getScreenWidth(this) * width);
final int mar_left = 45;
final int mar_top = 1030;
RelativeLayout.LayoutParams para = new RelativeLayout.LayoutParams(width, height);
para.leftMargin = mar_left;
para.topMargin = mar_top - (height/2 - width/2);
layout.addView(bigImage, para);
//水平 和 竖直方向上的 偏转量,一定要设置
bigImage.setPivotX(0f);
bigImage.setPivotY(0f);
final float startScale = (float)width / Constant.getScreenWidth(this);
final float startHeightScale = ((float)height / Constant.getScreenHeight(this));
//AnimationSet提供了一个把多个动画组合成一个组合的机制,并可设置组中动画的时序关系,如同时播放,顺序播放等
//解释,2秒内 bigimage 的x由 mar_left 到0;
//bigimage的y由mar_top到0;
//然后缩放比例
//起初我写的是//with(ObjectAnimator.ofFloat(bigImage,View.SCALE_X,startScale,1f)).
//发现并没有效果, 我一直以为 最大只能1f,后来实验下才知道
//如有错误,请指出
AnimatorSet set = new AnimatorSet();
set.play(ObjectAnimator.ofFloat(bigImage,View.X,mar_left,0)).
with(ObjectAnimator.ofFloat(bigImage, View.Y, mar_top - (height / 2 - width / 2), 0)).
with(ObjectAnimator.ofFloat(bigImage,View.SCALE_X,startScale*(1/startScale),1f*(1/startScale))).
with(ObjectAnimator.ofFloat(bigImage, View.SCALE_Y, startHeightScale * (1 / startHeightScale), 1f * (1 / startHeightScale)));
set.setDuration(2000);
set.setInterpolator(new DecelerateInterpolator());
set.start();
//点击缩小,返回 activity A
Constant.bindImage(bigImage, imgurl, false);
bigImage.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
@Override
public void onPhotoTap(View view, float x, float y) {
AnimatorSet set = new AnimatorSet();
set.play(ObjectAnimator.ofFloat(bigImage,View.X,0,mar_left)).
with(ObjectAnimator.ofFloat(bigImage,View.Y, 0,mar_top - (height/2 - width/2))).
with(ObjectAnimator.ofFloat(bigImage,View.SCALE_X,1f*(1/startScale),startScale*(1/startScale))).
with(ObjectAnimator.ofFloat(bigImage,View.SCALE_Y,1f*(1/startHeightScale),startHeightScale*(1/startHeightScale)));
set.setDuration(2000);
set.setInterpolator(new DecelerateInterpolator());
set.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
finish();
overridePendingTransition(R.anim.slide_other, R.anim.slide_other);
}
@Override
public void onAnimationCancel(Animator animation) {
super.onAnimationCancel(animation);
}
});
set.start();
}});
java 如何放大动画图,Android仿微信图片放大动画相关推荐
- Android仿微信头像放大效果
android仿微信头像放大效果,使用Dialog+Gallery 实现 1. dialog显示时的动画style,动画可以自己根据喜好自己设置,此处动画xml省略 <style name=& ...
- android 点击图片动画效果,Android仿微信图片点击全屏效果
废话不多说,先看下Android图片点击全屏效果: 先是微信的 再是模仿的 先说下实现原理,再一步步分析 这里总共有2个Activity一个就是主页,一个就是显示我们图片效果的页面,参数通过Inten ...
- android点击加号,Android仿微信图片上传带加号且超过最大数隐藏功能
1.仿照微信空间上传图片,显示图片数量以及超过最大,上传按钮隐藏功能 2.上效果图 3.上代码,主要是Adapter类 /** * Created by zhangyinlei on 2018/3/2 ...
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传
仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 如果不知道如何上传 ...
- android仿微信图片上传进度,android高仿微信发布动态(选择图片)
[实例简介]Android 超高仿微信图片选择器 [实例截图] [核心代码] public class MainActivity extends Activity implements OnImage ...
- Android 仿微信图片选择器
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.自我介绍 这是我写的第一篇博客,首先做一下自我介绍,我去年刚毕业,大学学的是计算机专业,期间也学了一门Android相关课程,但是你懂的,一个 ...
- android仿微信图片选择器
最近根据项目需求,要做一个仿微信图片选择的功能.首先我们先来整理一下思路. 1.显示选择图片的界面 1.1选择的图片数量小于9 最后一张图片是一个加号. 1.2选择的图片数量等于9,加号消失. 2.选 ...
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...
- android仿微信图片上传进度,Android开发之模仿微信打开网页的进度条效果(高仿)...
一,为什么说是真正的高仿? 阐述这个问题前,先说下之前网上的,各位可以复制这段字,去百度一下 "仿微信打开网页的进度条效果",你会看到有很多类似的文章,不过他们有个共同点,就是实 ...
最新文章
- 【物联网中间件平台-01】真正面向物联网的组态软件 YFIOs和YFHMI的前生今世
- 反其道而行:教人写烂代码的开源项目
- 第一个ilasm程序
- linux内核杂记(16)-系统调用(3)
- 【Jmeter篇】jmeter+Ant+Jenkins接口自动化测试集成之报告优化(三)
- java 聚合_Java 8 聚合操作详解
- Spring Boot基础讲解
- 《利用Python》进行数据分析:Numpy基础1 数组对象ndarray
- 49 - 算法 - Leetcode 112 路径总和 -二叉树递归 带参数一起递归
- 什么是缩量、放量、堆量
- VS2012下基于Glut 矩阵变换示例程序:
- java简单增删改查_JAVA JDBC 简单的增删改查
- 2021年第十二届蓝桥杯javaB组真题及部分答案
- 信息安全管理体系--建立
- 数独大师级技巧_数独入门:你必须掌握的那些规则和技巧
- 大数据薪水大概多少_大数据就业岗位有哪些?薪资多少?
- ​如何恢复回收站清空的文件?
- iRelax for Mac(定时休息提醒工具)
- 翻译: 欧盟除了GDPR, 再出人工智能法Artificial Intelligence Act
- 怎么选择关键词以及关键词分析优化
热门文章
- c语言静态变量存在堆还是栈,c 类 static 函数 什么样是静态变量?嵌入式C语言的堆栈管理如何实现...
- 13新功能_新功能简介|MySQL8.0数据查询脱敏
- MyBatis-Plus_Condition作用
- idea全局搜索快捷鍵ctrl+shift+F失效
- 随手写个二分查找算法【Java】
- 计算机应用基础抢答题,计算机应用基础问答题
- python open函数参数newline_Python open() 函数
- 前端详细设计文档怎么写_UI设计师简历应该怎么写?
- 通过docker无法访问到tomcat报页面404
- BugkuCTF-MISC题隐写2