当前位置:首页 » 安卓系统 » android下拉放大图片

android下拉放大图片

发布时间: 2022-09-22 02:32:24

‘壹’ android开发,实现下面图片中的背景图片放大的效果,下拉背景图片变大,松手后,可以回到原来图片大小。

滑动的时候动态改变ImageView的scaleX和scaleY就好了。比如你滑动100px需要方法1.5倍,那就在onScroll的时候计算出滑动距离,设置相应的scale。具体的可以参考下NoBoringActionbar,实现原理差不多。

‘贰’ android listView里怎么点击item的图片变成大图,实现点击图1中第三条数据,显示图2,请大家解决谢谢了。

你在onItemClickListener事件里写啊
这个图片放大显示有很多种方法,你可以重写Toast,把Toast中显示的字换成ImageView,或改成长时间显示。还可以用Dialog来显示这个ImageView。

‘叁’ Android怎么实现图片双击放大缩小,手势拖动,单击返回

需要用到
https://github.com/bm-x/PhotoView
打不开就帆樯

‘肆’ android中如何动态修改ImageView中图片的大小 比如说点击该图片后图片能变大

使用位图(Bitmap)再重新绘制遍

//原位图

Bitmap btm1 = BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.hh);

BitmapDrawable bd1=BitmapDrawable(btm1);

imageView.setBackgroundDrawable(bd1);

放大后 滑动时计算 图片的边是否在屏幕外,如果在屏幕外就可移动,比如 向上滑动,是想看图片下面的部分,此时计算图片的底边是否在屏幕外,如果是,就可以向上移动图片。

Scaletype的设置的方式包括:

1、在layout xml中定义android:scaleType="CENTER"

2、或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

(4)android下拉放大图片扩展阅读:

根据位深度,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就越逼真,相应的数据量越大。

例如,位深度为 1 的像素位图只有两个可能的值(黑色和白色),所以又称为二值位图。位深度为 8 的图像有 2^8(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。

RGB图像由三个颜色通道组成。8 位/通道的 RGB 图像中的每个通道有 256 个可能的值,这意味着该图像有 1600 万个以上可能的颜色值。

有时将带有 8 位/通道 (bpc) 的 RGB 图像称作 24 位图像(8 位 x 3 通道 = 24 位数据/像素)。通常将使用24位RGB组合数据位表示的的位图称为真彩色位图。

‘伍’ android 如何实现图片放大刚开始显示正常的图片,最后要停在放大后的图片。

ANDROID有一个放大镜的图标,你点击加就放大,点击减就缩小,或者用两只手滑大滑小。

‘陆’ android 中怎么实现多图自动轮播中间放大的效果

1,顶部轮播图,自动轮播效果。

2,顶部的viewpager 可随着下拉图片有渐变大的效果。

使用方法:
1,带轮播图的自定义ScrollView ,在项目中的名字叫ViewPagerImageScrollView,主要是通过图片的matrix.postScale(scale, scale, imgHeight/2, 0); 这个来进行当大图片。

‘柒’ Android实现点击图片之后,图片变大,超过屏幕的大小,我们可以滑动看图片的各个部分

放大后 滑动时计算 图片的边是否在屏幕外,如果在屏幕外就可移动
比如 向上滑动,是想看图片下面的部分,此时计算图片的底边是否在屏幕外,如果是,就可以向上移动图片。
其他方向同上

‘捌’ Android 怎样实现图片放大缩小,上一页,下一页

用AsynTask加载网络图片,可以看下我以前发的博客http://code.eoe.cn/1965.html。下载网络图片的代码写在MainActivity.java里面的private class DownloadTask extends AsyncTask<String, Integer, List<RowItem> >{}

‘玖’ android中怎样实现对画布的缩放

  • 工具准备

    画布:Canvas来响应画画(draw)的调用(并将其写入bitmap);

  • 具体操作

  1. Canvas类提供了很多“画“的方法,先来建一个类,继承自View。让画布铺在View上而显示出来(这也是自定义UI组件的路子),源码如下:


‘拾’ 【Android】打造下拉放大效果

在其他App上看到了这样的一个效果,感觉有点意思,于是决定实现一个类似的效果。
( 其实是iOS的同学在实现功能的时候随意发挥了一下 )
效果大概值这样子的:

UI看完后
“这个效果不错啊”
“要不你们Android也么做?” 于是~~
作为一个有追求的程序员,决定也要实现一个这样的效果 (满脑子都是草泥马在奔腾)

这样的效果嘛~~
利用自定义的 ViewGroup ,通过对手势的处理,应该就能实现了吧?

主要应该分两部分:

比较麻烦的应该是在第一部分,需要对事件的分发有一些理解。

说到手势的判断,难免需要对事件分发进行处理。

下拉部分
1、在 onInterceptTouchEvent 中对事件进行处理,如果为下拉事件,则将该事件拦截,交给 onTouchEvent 处理;
2、在 onTouchEvent 中通过计算得到下拉的距离,然后动态改变 Header 的配置,实现放大的效果。

重置部分
在 onTouchEvent 的 ACTION_UP 中重置 Header ,实现回弹

知道思路以后,实现起来就比较简单了

创建一个 ViewGroup (这么命名为 FlexibleLayout )继承 LinearLayout

onInterceptTouchEvent的处理

先通过两个条件判断是否为下拉事件:

然后通过 mIsBeingDragged 来标记开始拖拽

onTouchEvent的处理

修改头部大小

得到下拉的距离后,就可以来改变 Header 的大小,实现放大效果了。

放大、重置的部分大家可以自由发挥

这里利用 Math.pow(offsetY, 0.8) 得到实际需要增加的高度,通过计算得到对应的宽度以及偏移(类似阻尼效果)。

重置头部

直接将宽高以及偏移设置成原来的参数即可。
(如果觉得这样重置过程不够丝滑,可以通过动画来完成一个流畅的重置效果,这里就不演示了)

到这里,一个简易拉下放大的效果就做完了。试试效果

使用

直接在需要下拉放大的布局外面套上 FlexibleLayout 即可,例如 ScrollView

效果

ScrollVIew:

RecyclerView:

CoordinatorLayout:

大功告成!!!
当然里面还有一些细节的处理,比如下拉的条件、回弹的动画、最大高度等,具体内容的可以在 源码 中看到。

完成下拉放大后,貌似把一个很重要的功能遗忘了下拉刷新 ??
光顾这下拉放大,刷新怎么办?【黑人问号】

这个功能留着下周实现吧,我的7小时睡眠已遥遥无期~~

虽然没有直接实现下拉刷新的功能,不过源码中已经暴露了一个下拉的监听,你也可以通过这个监听实现下拉刷新的操作

到这里就结束了

(来还上周欠下的债~~)

和下拉放大类似,通过希手指下滑的监听,利用 View translationY rotation 实现移动和旋转。
具体的实现过程这里就不贴出来了,直接看效果吧

有兴趣的可以直接去 Github 上看源码以及用法。

Github

PullZoomView
Android事件分发机制 详解攻略,您值得拥有

热点内容
如何取消子账号密码 发布:2025-01-13 09:22:41 浏览:346
抖音搜索有缓存 发布:2025-01-13 09:17:28 浏览:589
c语言字符数组连接 发布:2025-01-13 08:55:11 浏览:900
国二c语言编程题目 发布:2025-01-13 08:45:41 浏览:285
ipad软件如何加密 发布:2025-01-13 08:28:59 浏览:278
android的文件操作 发布:2025-01-13 08:24:48 浏览:173
电脑上服务器答题赚钱 发布:2025-01-13 08:24:05 浏览:430
有哪些学习编程的网站 发布:2025-01-13 08:23:17 浏览:529
ymodem源码 发布:2025-01-13 08:20:57 浏览:882
安卓桢布局怎么做 发布:2025-01-13 08:20:55 浏览:968