滑动的时候动态改变ImageView的scaleX和scaleY就好了。比如你滑动100px需要方法1.5倍,那就在onScroll的时候计算出滑动距离,设置相应的scale。具体的可以参考下NoBoringActionbar,实现原理差不多。
成都创新互联从2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、网站建设、外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元陕西做网站,已为上家服务,为陕西各地企业和个人服务,联系电话:028-86922220
是要编写一个这样的功能么,android提供的API里面一般图片都是Bitmap,可以通过Canvas.drawBItMap的方法在View进行图片的绘制,在方法中需要进行传入一个类型为Matrix的参数,设置Martrix的一些参数就可以进行图片的放大的绘制,这只是显示,也就是MVC中的View层,然后通过提供的一些触摸函数的重写并实现自己需要的一些功能,如拖动,实际上就是改变BitMap绘制的位置。关于触摸的处理和图片的绘制可以在网上进行一些教程的搜索,我就不罗列了,最终就是需要通过控制函数来改变图片的绘制方式,这也许就是你所需要的功能。
其实如果图片像素比较高的话是不会影响他的清晰度的,一般都是用的bitmap位图,矩阵像素。所以你要求图片放大后还是很清晰,那么只能要求原图片的像素比较高,而并不能通过其他的操作来实现清晰度的变化!
使用位图(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);
扩展资料:
根据位深度,可将位图分为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组合数据位表示的的位图称为真彩色位图。
参考资料来源:百度百科-Bitmap
ImageView可以放大缩小,也可以通过Scaletype这个属性来指定。
Scaletype的设置的方式包括:
1. 在layout xml中定义android:scaleType="CENTER"
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);
Scaletype的取值和区别:
1. SetScaleType(ImageView.ScaleType.CENTER);
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2. SetScaleType(ImageView.ScaleType.CENTER_CROP);
按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
4. setScaleType(ImageView.ScaleType.FIT_CENTER);
把图片按比例扩大/缩小到View的宽度,居中显示
5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。
在此就不给出示例了。
6. FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。
ANDROID有一个放大镜的图标,你点击加就放大,点击减就缩小,或者用两只手滑大滑小。