`

Drawable常用处理方法

阅读更多
public class DrawableTool {

	/**
	 * Drawable转化为Bitmap
	 * 
	 * @param drawable
	 * @return Bitmap
	 */
	public static Bitmap drawableToBitmap(Drawable drawable) {
		// 取 drawable 的长宽
		int w = drawable.getIntrinsicWidth();
		int h = drawable.getIntrinsicHeight();

		// 取 drawable 的颜色格式
		Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
				: Bitmap.Config.RGB_565;
		// 建立对应 bitmap
		Bitmap bitmap = Bitmap.createBitmap(w, h, config);
		// 建立对应 bitmap 的画布
		Canvas canvas = new Canvas(bitmap);
		drawable.setBounds(0, 0, w, h);
		// 把 drawable 内容画到画布中
		drawable.draw(canvas);
		return bitmap;
	}

	/**
	 * Drawable缩放
	 * 
	 * @param context
	 * @param drawable
	 * @param w
	 *            目标宽度
	 * @param h
	 *            目标高度
	 * @return Drawable
	 */
	public static Drawable zoomDrawable(Context context, Drawable drawable,
			int w, int h) {
		int width = drawable.getIntrinsicWidth();
		int height = drawable.getIntrinsicHeight();
		// drawable转换成bitmap
		Bitmap oldbmp = drawableToBitmap(drawable);
		// 创建操作图片用的Matrix对象
		Matrix matrix = new Matrix();
		// 计算缩放比例
		float sx = ((float) w / width);
		float sy = ((float) h / height);
		// 设置缩放比例
		matrix.postScale(sx, sy);
		// 建立新的bitmap,其内容是对原bitmap的缩放后的图
		Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height,
				matrix, true);
		return new BitmapDrawable(context.getResources(), newbmp);
	}

}

 

分享到:
评论

相关推荐

    Android Drawable Bitmap 相互转换

    在Android开发中,Drawable和Bitmap是两种常用的图像资源类型,它们各有特点且在不同场景下有不同的优势。了解和掌握它们之间的相互转换对于优化性能和提高用户体验至关重要。本篇将详细介绍如何在Android中进行...

    android 通过图片名称获取 drawable 目录下的图片

    ### Android 通过图片名称获取 Drawable 目录下的...总之,通过图片名称动态加载Drawable资源的方法虽然不是常用的开发模式,但在特定场景下仍具有一定的实用价值。开发者可以根据实际需求选择最适合自己的解决方案。

    Android中ImageView的常用方法一览.pdf

    以下是关于Android中ImageView的一些常用方法的详细说明: 1. **setOnClickListener(View.OnClickListener l)**:这个方法是View类中的继承方法,用于为ImageView设置点击事件监听器。当用户点击ImageView时,传入...

    Android App开发中将View或Drawable转为Bitmap的方法

    1. 常用方法: 在Android中,有两种主要方式将View转换为Bitmap。 方法一: ```java public static Bitmap convertViewToBitmap(View view, int bitmapWidth, int bitmapHeight) { Bitmap bitmap = Bitmap.create...

    Android编程中TextView宽度过大导致Drawable无法居中问题解决方法

    在Android开发中,TextView是一个非常常用的控件,用于显示文本内容。然而,当TextView的宽度被设置为`fill_parent`(现在的`match_parent`)或通过权重分配了较大的空间时,如果同时设置了Drawable(比如...

    Android中ImageButton的常用方法一览.pdf

    下面将详细讲解`ImageButton`的一些核心概念、属性以及常用方法。 1. `ImageButton`类的定义: `ImageButton`是`ImageView`的子类,因此它具有显示图像的基本功能,同时又具备`Button`的交互特性。在Android框架中...

    Android代码-常用图片特效处理源码.zip

    这个名为"Android代码-常用图片特效处理源码.zip"的压缩包很可能包含了一系列用于实现图片特效的Java或Kotlin源代码。这些特效可能包括但不限于图片滤镜、旋转、缩放、裁剪、模糊等。以下是一些可能涵盖的知识点: ...

    android常用图片特效处理.zip

    对于高度定制的图片特效,开发者可以创建自定义的View或Drawable,重写onDraw()方法,直接在Canvas上绘制和操作图片。 9. **Lottie**: Lottie是一个流行的库,用于在Android中播放Adobe After Effects创作的动画...

    Android中EditText的常用方法说明.pdf

    本文将详细介绍EditText的一些常用方法,并提供如何有效利用这些方法来提升用户体验。 1. EditText类的定义 EditText是TextView的一个子类,专用于创建可以编辑的文本字段。它的基本功能包括显示文本、接受用户输入...

    android常用图片特效处理_Android.rar

    这个“android常用图片特效处理_Android.rar”压缩包可能包含了多个与Android平台图片处理相关的资源和代码示例,让我们来深入探讨一下Android中常用的图片特效处理技术。 1. **Bitmap操作**: Android提供了...

    Android 常用图片特效处理源码.rar

    本资源“Android常用图片特效处理源码.rar”提供了一系列的实践项目,旨在帮助开发者掌握并应用这些技术。以下将详细介绍其中涉及的知识点: 1. **图片滤镜效果**:Android平台提供了多种方式实现图片滤镜,例如...

    android开发常用图片

    本资源包“android开发常用图片”包含了全面的图片素材,适合Android开发者在构建应用时参考和使用。以下是对这些知识点的详细阐述: 1. **图片格式选择**:Android支持多种图片格式,如PNG、JPEG、GIF等。PNG适用...

    android开发中常用的3中菜单

    需要在Activity中注册要显示上下文菜单的视图,并重写`onCreateContextMenu(Menu menu, View v, ContextMenuInfo menuInfo)`方法来创建菜单,以及`onContextItemSelected(MenuItem item)`方法来处理选择。...

    Android源码——常用图片特效处理源码.7z

    这份"Android源码——常用图片特效处理源码.7z"压缩包包含了多个示例图片和一个源码项目,旨在帮助开发者理解并实现常见的图片处理效果。下面将详细介绍其中可能涉及的关键知识点。 1. 图片资源管理: 在Android中...

Global site tag (gtag.js) - Google Analytics