`
407827531
  • 浏览: 1074075 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Android 图像处理(类型转换,比例缩放,倒影,圆角)

 
阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

	/**
	 * 1.放大缩小图片
	 * 
	 * @param bitmap
	 * @param w
	 * @param h
	 * @return
	 */
	public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h) {
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		Matrix matrix = new Matrix();
		float scaleWidht = ((float) w / width);
		float scaleHeight = ((float) h / height);
		matrix.postScale(scaleWidht, scaleHeight);
		Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,
				matrix, true);
		return newbmp;
	}

	/**
	 * 2.获得圆角图片的方法
	 * 
	 * @param bitmap
	 * @param roundPx
	 * @return
	 */
	public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) {
		Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
				.getHeight(), Config.ARGB_8888);
		Canvas canvas = new Canvas(output);
		final int color = 0xff424242;
		final Paint paint = new Paint();
		final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
		final RectF rectF = new RectF(rect);
		paint.setAntiAlias(true);
		canvas.drawARGB(0, 0, 0, 0);
		paint.setColor(color);
		canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
		paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
		canvas.drawBitmap(bitmap, rect, rect, paint);
		return output;
	}

	/**
	 * 3.获得带倒影的图片方法
	 * 
	 * @param bitmap
	 * @return
	 */
	public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap) {
		final int reflectionGap = 4;
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		Matrix matrix = new Matrix();
		matrix.preScale(1, -1);
		Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0, height / 2,
				width, height / 2, matrix, false);
		Bitmap bitmapWithReflection = Bitmap.createBitmap(width,
				(height + height / 2), Config.ARGB_8888);
		Canvas canvas = new Canvas(bitmapWithReflection);
		canvas.drawBitmap(bitmap, 0, 0, null);
		Paint deafalutPaint = new Paint();
		canvas
				.drawRect(0, height, width, height + reflectionGap,
						deafalutPaint);
		canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
		Paint paint = new Paint();
		LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0,
				bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff,
				0x00ffffff, TileMode.CLAMP);
		paint.setShader(shader);
		// Set the Transfer mode to be porter duff and destination in
		paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
		// Draw a rectangle using the paint with our linear gradient
		canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()
				+ reflectionGap, paint);
		return bitmapWithReflection;
	}

	/**
	 * 4.将Drawable转化为Bitmap
	 * 
	 * @param drawable
	 * @return
	 */
	public static Bitmap drawableToBitmap(Drawable drawable) {
		int width = drawable.getIntrinsicWidth();
		int height = drawable.getIntrinsicHeight();
		Bitmap bitmap = Bitmap.createBitmap(width, height, drawable
				.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
				: Bitmap.Config.RGB_565);
		Canvas canvas = new Canvas(bitmap);
		drawable.setBounds(0, 0, width, height);
		drawable.draw(canvas);
		return bitmap;
	}

 

分享到:
评论

相关推荐

    Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子

    在Android开发中,图像处理是一项常见的任务,涵盖了各种操作,如类型转换、比例缩放、创建倒影和制作圆角图像。以下是对这些知识点的详细解释: 1. **比例缩放图片**: 在Android中,可以使用`Bitmap`类提供的...

    Android编程中图片特效处理方法小结

    本文将深入探讨Android中图片转换、缩放、圆角以及倒影等特效的实现方法。 首先,我们来看一下如何将`Drawable`转换为`Bitmap`。在Android中,`Drawable`是一个抽象类,它代表了屏幕上的可视元素,而`Bitmap`则是一...

    Android高手进阶教程(二十二)之Android中几种图像特效处理的集锦汇总!!

    本篇文章将探讨几个常见的图像处理技术,包括创建圆角、制作倒影、图片缩放以及在Drawable与Bitmap之间的转换。 首先,让我们来讨论如何创建圆角图片。在Android中,我们可以通过使用Bitmap类和Canvas类来实现这一...

    android Bitmap用法总结

    Bitmap是Android平台中用于处理图像的核心类,它用于表示位图图像数据。下面是对Bitmap用法的详细总结: 1. **Drawable转换为Bitmap**: 当我们需要将一个Drawable对象(如从XML布局文件中加载的图像)转换为...

    图片处理Demo

    在Android开发中,图片处理是一项常见的任务,尤其在创建..."图片处理Demo"项目提供了一个学习和参考的实例,帮助开发者更好地理解和运用这些图像处理技术。通过深入研究和实践,可以进一步优化性能,提升用户体验。

    ImageUtils

    根据提供的描述,我们可以了解到 `ImageUtils` 支持的功能包括但不限于:缩放图片、裁剪图片、倾斜图片、旋转图片、将图片转换为圆形或圆角图片、添加倒影、添加文字或图片水印以及快速模糊等。接下来,我们将深入...

    Android 轻松实现图片倒影效果实例代码

    这些方法分别用于Drawable到Bitmap的转换、Bitmap的缩放、创建圆角Bitmap以及创建倒影Bitmap。 在实际开发中,我们可以通过类似的方式实现其他视觉效果,比如模糊、裁剪、滤镜等。理解并掌握这些基本的图像处理方法...

    bitmap图片处理工具类

    "获得圆角图片"涉及到复杂的图像处理,通常有两种方法:一是使用`PorterDuff.Mode.CLEAR`模式画布裁剪,二是利用`Shader`的`BitmapShader`类配合`Paint`的`setShader()`方法,创建圆形或圆角矩形的遮罩。 "绘制带...

    图片的各种效果的处理

    1. **图片缩放**:Android提供了多种方法进行图片缩放,如`Bitmap.createScaledBitmap()`函数,可以按照指定的宽高比例对图片进行缩放,保持图片原有的宽高比。 2. **图片圆角**:要实现圆角图片,通常需要自定义`...

    ImageViewType.zip

    在Android开发中,ImageView是展示图像的常用组件,它提供了多种方式来处理和展示图片,如缩放、裁剪和旋转等。`ImageViewType.zip`这个压缩包可能包含了一个示例项目,展示了如何灵活地使用ImageView及其扩展功能。...

Global site tag (gtag.js) - Google Analytics