日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

java 如何放大动画图,Android仿微信图片放大动画

發(fā)布時(shí)間:2025/3/8 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 如何放大动画图,Android仿微信图片放大动画 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#今年三月份直接上手做的android,代碼寫的不規(guī)范,有問題希望指出,謝謝(app數(shù)英)

類似于微信 圖片瀏覽的效果,我的做法是在兩個activity A\B之間傳遞圖片的位置信息

思路:在activity A的list view上有一張圖片,通過方法獲取到此image view相對于 window 的坐標(biāo)(也就是 距離手機(jī)屏幕上側(cè)和左側(cè)的距離),然后將這些參數(shù)傳遞給 activity B,此時(shí)activity B創(chuàng)建一個 image view,image view的寬高是 activity A 里點(diǎn)擊的圖片的寬高,然后設(shè)置 margin left margin top,此時(shí)就造成一種假象(activity a 的圖片直接傳遞到了 activity B),下面就是 縮放代碼

注意:根據(jù)你的代碼 可能 activity a 里邊計(jì)算出來的 上側(cè)距離可能要減去 活著加上 狀態(tài)條的高度,具體根據(jù)個人代碼判斷。

上邊的 gif 只是粗略的演示,如有疑問,可以留言 一同解決

下邊是部分主要代碼:

#activity A

//獲取上邊距,左邊距,以及圖片寬高

//可能幾個人計(jì)算出的margintop要減去 狀態(tài)欄高度

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);

//由于是在已發(fā)布的項(xiàng)目上更改的代碼,我這只是簡單的演示, 所以沒有做參數(shù)傳遞, 直接在b頁面寫死的

#activity B

//由于我使用的第三方庫 PhotoView(處理圖片放大縮小),實(shí)際上我的圖片并不是正方形(我這邊放大的圖片和手機(jī)的比例一樣),所以下邊高度及 縮放比例的計(jì)算會出現(xiàn)不同

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);

//水平 和 豎直方向上的 偏轉(zhuǎn)量,一定要設(shè)置

bigImage.setPivotX(0f);

bigImage.setPivotY(0f);

final float startScale = (float)width / Constant.getScreenWidth(this);

final float startHeightScale = ((float)height / Constant.getScreenHeight(this));

//AnimationSet提供了一個把多個動畫組合成一個組合的機(jī)制,并可設(shè)置組中動畫的時(shí)序關(guān)系,如同時(shí)播放,順序播放等

//解釋,2秒內(nèi) bigimage 的x由 mar_left 到0;

//bigimage的y由mar_top到0;

//然后縮放比例

//起初我寫的是//with(ObjectAnimator.ofFloat(bigImage,View.SCALE_X,startScale,1f)).

//發(fā)現(xiàn)并沒有效果, 我一直以為 最大只能1f,后來實(shí)驗(yàn)下才知道

//如有錯誤,請指出

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();

//點(diǎn)擊縮小,返回 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();

}});

總結(jié)

以上是生活随笔為你收集整理的java 如何放大动画图,Android仿微信图片放大动画的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中国av毛片 | 欧洲xxxxx | 专干中国老太婆hd | av美女网站 | a黄色片 | 国产在线最新 | 日韩欧美精品国产 | 亚州成人| 美女av在线免费观看 | 操视频网站| 中文字幕日韩精品在线 | 国产三级视频网站 | 亚洲黄色一区二区 | 国产成人综合久久 | 亚洲福利精品视频 | 日本真人做爰免费视频120秒 | 国内三级视频 | 一区二区三区观看 | 天天操天天舔 | av资源在线 | 久久久久五月 | 中文字幕在线播放一区 | 一区二区三区国产av | 精品日韩在线 | 国产视频四区 | 亚洲精品专区 | 日韩国产免费 | 少妇天堂网 | 女同互舔视频 | 中文字幕超清在线观看 | 黄色三级三级三级 | 免费在线观看视频 | 久久青| 91亚洲视频在线 | 四虎影库永久在线 | 国产嫩草av | 三级小说视频 | 在线成人观看 | 精品国产av色一区二区深夜久久 | 麻豆精品免费观看 | 亚洲国产精品一区二区三区 | 欧美自拍在线 | 欧美在线观看视频 | 国产在线精品视频 | 亚洲码无人客一区二区三区 | 97看片网 | 97干干| 丰满人妻一区二区三区无码av | 日韩欧美中文字幕一区二区三区 | 国产3区 | 美女视频黄频视频大全 | 免费精品国产 | 国产精品无码一区二区三区三 | 视频黄色免费 | 日韩欧美中文字幕一区 | 亚洲精品在线一区二区 | 伊人伦理 | 欧美无极品 | 亚洲v欧美 | 伊人青青草视频 | 久久无码人妻一区二区三区 | 99免费视频 | 麻豆性生活 | 日韩最新视频 | 一级在线看 | 澳门色网 | 国内毛片视频 | 色爽爽爽 | 亚洲色图激情小说 | 麻豆视频免费版 | av电影网站在线观看 | 人妻91麻豆一区二区三区 | 欧美日韩一区二区综合 | 欧美色一区二区三区在线观看 | 国产黄色a | 好吊妞精品| 国产伊人久久 | 欧美女人一区二区 | 亚洲福利在线播放 | 国产无遮挡又黄又爽又色视频 | 青青操免费| av成人在线免费观看 | 亚洲免费不卡视频 | 永久免费,视频 | 成年人www| jizz日本18| 色图色小说| 国产成人传媒 | 国产在线观看成人 | 午夜小视频网站 | 日本免费一二区 | 69xxxx国产 | 成人性做爰片免费视频 | 二区视频在线观看 | 老司机午夜免费视频 | 亚洲中文字幕久久无码 | 国产按摩一区二区三区 | 香蕉视频免费网站 | 成人欧美一级特黄 |