安卓图片缩放

缩放图片并加载到内存中
_计算机图形处理的原理
计算机在表示图形的时候使用像素点来表示,每个像素点都是使用一个颜色来表示,
每个颜色都是6个十六进制的数值来表示的,计算机在底层表示图形时就是使用01001字符串来表示的,处理图形时就是修改0101的序列。

缩放加载图片:
1、得到设备屏幕的分辨率:
2、得到原图的分辨率:
3、通过比较得到一个合适的比例值:
4、使用比例值缩放一张图片,并加载到内存中:

代码:

//    	1、得到设备屏幕的分辨率:
    	WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    	Display display = wm.getDefaultDisplay();
    	long screenHeigth = display.getHeight();
    	long screenWidth = display.getWidth();
    	
//    	2、得到原图的分辨率:
    	Options opts = new Options();
    	//如果置为true,表示只绑定图片的大小
    	opts.inJustDecodeBounds = true;
    	BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);
    	long scrHeight = opts.outHeight;
    	long scrWidth = opts.outWidth;
    	
//    	3、通过比较得到一个合适的比例值:
    	int scale = 1;
    	
    	//3000/320  = 9 3000/480=6
    	int sx = (int) (scrWidth/screenWidth);
    	int sy = (int) (scrHeight/screenHeigth);
    	if(sx>=sy&& sx>=1){
    		scale = sx;
    	}
    	if(sy>sx&& sy>=1){
    		scale = sy;
    	}
//    	4、使用比例值缩放一张图片,并加载到内存中:
    	opts.inJustDecodeBounds = false;
    	//按照比例缩放原图
    	opts.inSampleSize = scale;
    	Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android图片缩放拖动裁剪是指在Android系统中,对图片进行缩放、拖动和裁剪的操作。 首先,可以使用ImageView组件来展示图片,并实现缩放功能,可以通过设置ImageView的ScaleType属性为MATRIX,然后使用Matrix类来实现缩放功能。可以通过设置Matrix的setScale方法来设置图片缩放比例,如matrix.setScale(scaleX, scaleY)来设置图片的宽高缩放比例。然后,再将Matrix应用到ImageView上,将其设置给ImageView的setImageMatrix方法。 其次,可以通过监听触摸事件来实现图片的拖动功能。在ImageView上设置OnTouchListener,然后重写onTouch方法,在该方法中可以获取到用户触摸事件的坐标,并实现图片的移动效果。可以通过设置ImageView的setTranslationX和setTranslationY方法,来设置图片在X轴和Y轴上的平移距离。 最后,可以实现图片的裁剪功能。可以通过裁剪图片所在的布局容器,可以使用FrameLayout布局容器作为裁剪容器。通过设置ImageView的scaleType为MATRIX,然后获取到ImageView的缩放后的图片的坐标和宽高,根据裁剪区域的大小,计算出裁剪的起始点和宽高,并使用Bitmap的createBitmap方法裁剪出所需的图片。 综上所述,Android图片缩放拖动裁剪可以通过设置ImageView的ScaleType属性为MATRIX实现缩放功能,通过监听触摸事件实现拖动功能,通过裁剪图片所在的布局容器实现裁剪功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值