图片等比例缩放,从0.0左边开始剪切 保证图片不变形 /** * @Description * @Created by YCH on 2015/11/9. */ public class CropImageView extends ImageView { /** * 画布的宽度 */ private int width; /** * 画布的高度 */ private int height; float scaleWidth = 1.0f; float scaleHeight = 1.0f; public CropImageView(Context context) { super(context); } public CropImageView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); width = canvas.getWidth(); height = canvas.getHeight(); Drawable drawable = getDrawable(); if (drawable != null) { Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); if(bitmap != null){ int bmWidth = bitmap.getWidth(); int bmHeight = bitmap.getHeight(); float scale = 1.0f; float scaleBitmap = (float)bmWidth/(float)bmHeight;//图片宽高比 float scaleContainer = (float)width/(float)height;//容器宽高比 //如果容器的比例大于图片的比例 if(scaleContainer > scaleBitmap){ //根据宽度进行计算 scale = (float) width / (float) bmWidth; }else { //根据高度进行计算 scale = (float) height / (float) bmHeight; } Matrix matrix = new Matrix(); matrix.postScale(scaleWidth * scale, scaleHeight * scale); Rect rect = new Rect(); rect.left = 0; rect.top = 0; rect.right = width; rect.bottom = height; Bitmap bm = Bitmap.createBitmap(bitmap, 0, 0, bmWidth, bmHeight, matrix, true); canvas.drawBitmap(bm, rect, rect, null); } } } }
相关推荐
首先,我们要明白自定义ImageView的主要目标是解决图片在不同设备和屏幕尺寸下的显示问题,以及网络图片的加载和缓存。在这个过程中,我们需要考虑图片的分辨率、像素密度和屏幕尺寸等因素,确保图片在各种环境下都...
本文将深入探讨如何通过自定义ImageView来实现旋转动画,让图片在XYZ轴上动态展示,为用户带来更加生动的视觉效果。 首先,我们需要创建一个新的类,继承自Android的内置ImageView类。这个新类将作为我们自定义的...
本文将深入探讨如何通过自定义ImageView来实现图片的缩放功能。在Android的UI设计中,ImageView通常用于显示图像,但默认情况下,它并不支持复杂的交互操作,如平移、缩放等。为了满足这些需求,我们需要对其进行...
本篇文章将详细介绍如何通过自定义ImageView类来实现这一功能,并结合Glide库加载网络图片,使得顶部两个角为圆角,底部两个角为直角。 首先,我们要创建一个新的自定义ImageView类。这个类需要继承自Android的...
android自定义ImageView,圆角和圆形,抗锯齿.亲测可用。直接拷贝代码就行。
今天我们将深入探讨如何使用自定义ImageView实现图片的放大和缩小功能。自定义ImageView不仅能够提供更灵活的图像展示方式,还能优化性能,避免系统默认ImageView在处理大图时可能出现的内存问题。 首先,我们创建...
自定义ImageView实现缩放和回弹效果,需要结合手势识别、动画以及物理模拟等技术。通过这种方式,我们可以为用户提供更加自然、流畅的交互体验。在实际项目中,还可以根据需求添加更多细节,如平移、旋转等功能,...
这个自定义ImageView的实现,通常会涉及到Android的触摸事件处理、Matrix变换以及手势识别等技术。 首先,我们要了解Android中的手势识别。Android提供了GestureDetector和ScaleGestureDetector这两个类来帮助我们...
Android实现圆形、圆角、椭圆自定义ImageView,使用Xfermode渲染模式渲染图形实现的,代码有注释,读起来通俗易懂,有需要的可以下载哈 Android实现圆形、圆角、椭圆自定义ImageView,使用Xfermode渲染模式渲染图形...
Android中使用自定义ImageView实现图片圆形遮罩效果(常和Glide搭配使用),详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/63834235
本示例“Demo.rar”提供了一个解决方案,重点在于自定义ImageView的实现,以支持图片的动态缩放功能。下面我们将深入探讨相关知识点。 1. **Popupwindow**:Popupwindow是Android中一个轻量级的弹出窗口组件,它...
本篇文章将深入探讨如何通过自定义ImageView实现显示gif动画效果,以满足这种需求。 首先,我们要明白,Android系统自带的ImageView并不直接支持gif格式的图片,因此我们需要借助第三方库或者自定义控件来实现这一...
width=100%就可以使得图片宽度充满屏幕,高度自适应
本文将深入探讨如何通过自定义ImageView来实现显示圆形、矩形和椭圆的效果。这不仅能满足特定的UI需求,还能帮助开发者更好地理解和掌握Android图形绘制机制。 首先,让我们了解Android中的ImageView。ImageView是...
本主题聚焦于一个特定的自定义View——"Google官方带旋转动画的自定义ImageView"。这个ImageView不仅具有基本的图片显示功能,还集成了旋转动画,为用户界面增添了动态元素。 首先,我们要理解Android中的ImageView...
该自定义控件实现的主要功能是控件的拖动和缩放(注意:不是对控件中的图片进行操作,话说很多帖子都把这两个混了),其中缩放可以按照三个方向进行,就是水平、竖直和等比例。双击操作只做了一个提示,长按加上了一...
本主题聚焦于“自定义ImageView及竖向文字”,这是一个将文字垂直排列在ImageView内部的自定义视图实例。自定义View可以帮助我们实现更丰富的交互效果和视觉表现,提升用户体验。 首先,我们要创建一个新的Java类,...