`
yelinsen05
  • 浏览: 497863 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android Bitmap 改变大小

阅读更多
/**
	 * Returns a Bitmap representing the thumbnail of the specified Bitmap.
	 * The size of the thumbnail is defined by the dimension
	 * android.R.dimen.launcher_application_icon_size.
	 *
	 * This method is not thread-safe and should be invoked on the UI thread only.
	 *
	 * @param bitmap The bitmap to get a thumbnail of.
	 * @param context The application's context.
	 *
	 * @return A thumbnail for the specified bitmap or the bitmap itself if the
	 *         thumbnail could not be created.
	 */
	public static Bitmap createBitmapThumbnail(Bitmap bitmap, Context context)
	{
		 if(FusionField.iconWidth == -1&&(FusionField.screenWidth == 800 && FusionField.screenHeight == 480)){
				FusionField.iconWidth = 80;
				FusionField.iconHeight = 98;
			
		}
		else if (FusionField.iconWidth == -1)
		{
				FusionField.iconWidth = 60;
				FusionField.iconHeight = 82;
		}

		final int bitmapWidth = bitmap.getWidth();
		final int bitmapHeight = bitmap.getHeight();

		Log.e("dean xiang", "" + bitmapWidth + ":" + bitmapHeight);
		if (FusionField.iconWidth > 0 && FusionField.iconHeight > 0)
		{

			final Bitmap.Config c = Bitmap.Config.ARGB_8888;
			final Bitmap thumb = Bitmap
					.createBitmap(FusionField.iconWidth, FusionField.iconHeight, c);
			final Canvas canvas = sCanvas;
			final Paint paint = sPaint;

			canvas.setBitmap(thumb);
			paint.setDither(false);
			paint.setFilterBitmap(true);
			//			int offsetX = Math.abs(sIconWidth - bitmapWidth) / 2;
			//			int offsetY = Math.abs(sIconHeight - bitmapHeight) / 2;
			//			
			//			sBounds.set(offsetX, offsetY, bitmapWidth + offsetX,
			//					bitmapHeight + offsetY);
			//			sOldBounds.set(0, 0, bitmapWidth, bitmapHeight);
			//			canvas.drawBitmap(bitmap, sOldBounds, sBounds, paint);
			
			sBounds.set(0, 0, FusionField.iconWidth, FusionField.iconHeight);
			sOldBounds.set(0, 0, bitmapWidth, bitmapHeight);
			canvas.drawBitmap(bitmap, sOldBounds, sBounds, paint);
			return thumb;
		}

		return bitmap;
	}
分享到:
评论

相关推荐

    android中对Bitmap图片设置任意角为圆角

    通过BitmapShader的setLocalMatrix方法,可以调整Bitmap的形状和大小,配合Matrix实现圆角效果。 在实际项目中,可能还会遇到图片比例不一致导致的圆角变形问题,这时可以考虑先对Bitmap进行等比例缩放,确保在裁剪...

    Android下利用Bitmap切割图片

    在实际应用中,我们可能需要根据需求动态调整图片大小或比例,这时可以使用Bitmap.createScaledBitmap方法。这个方法可以将Bitmap缩放到指定的尺寸,同时保持原图像的比例: ```java // 缩放Bitmap至新的尺寸 ...

    Android bitmap图片压缩工具类

    "Android bitmap图片压缩工具类"就是针对这一需求设计的一个实用工具,它能够有效地减小图片的大小,同时满足基本的显示要求。 BitmapCompressUtils这个类通常包含了一系列静态方法,用于对Bitmap进行不同类型的...

    Android中把bitmap存成BMP格式图片的方法

    在Android开发中,有时我们需要将Bitmap对象转换成不同的图片格式,比如BMP。BMP(Bitmap File Format)是一种常见的位图文件格式,但它并不像JPEG或PNG那样被Android SDK直接支持。本文将详细介绍如何在Android中将...

    android Bitmap用法总结

    使用Matrix对象调整Bitmap的大小,以适应特定的尺寸: ```java // 获取原图的宽高 int width = bm.getWidth(); int height = bm.getHeight(); // 设置目标尺寸 int newWidth = 320; int newHeight = 480; ...

    处理android bitmap oom 2.0版本关闭了硬件加速

    综上所述,处理Android Bitmap OOM问题需要综合运用多种技术,包括调整图片大小、选择合适的编码格式、合理加载和释放Bitmap,以及利用库和缓存机制。在Android 2.0版本中关闭硬件加速是一个可行的解决方案,但应...

    Android canvas drawBitmap方法详解及实例

    如果你想只绘制Bitmap的一部分,比如红色线条划分的四个部分中的第二个部分,你可以调整`src`矩形的坐标。假设第二个部分的左上角坐标是(x1, y1),右下角是(x2, y2),则可以这样设置`src`: ```java Rect srcRect =...

    android Bitmap 图像特效处理

    ### Android Bitmap 图像特效处理 #### 一、概述 在Android开发过程中,图像处理是一项非常重要的功能,尤其是在需要实现各种视觉效果的应用场景中。本文主要介绍如何利用Android平台提供的工具来实现图片的特效...

    处理android bitmap oom

    9. **使用 Glide 或 Picasso 图片加载库**:这些第三方库已经内置了处理Bitmap的优化策略,如内存和磁盘缓存、异步加载、自动调整大小等,能帮助开发者更轻松地处理Bitmap。 10. **监控内存使用**:使用Android ...

    bitmap上传图片demo

    如果需要动态调整图片大小以适应视图,可以使用`Bitmap.createScaledBitmap()`方法。 4. 图片裁剪: 在这个示例中,裁剪圆形头像是一个常见的需求,通常通过Canvas和Paint来实现。首先创建一个圆形Bitmap,然后在...

    Android应用源码之(Bitmap位图渲染与操作).zip

    - **颜色转换**:通过ColorFilter或 PorterDuff.Mode 可以改变Bitmap的颜色效果。 - **合并与拼接**:多个Bitmap可以使用Canvas进行组合,形成新的Bitmap。 - **滤镜效果**:利用PixelMapper或自定义Shader实现...

    Android Bitmap网络图片下载

    - 质量压缩:`Bitmap.CompressFormat.JPEG`或`Bitmap.CompressFormat.PNG`配合`compress()`方法,可以根据质量参数调整压缩级别,减少图片的大小。 - 码率压缩:使用`Bitmap.createBitmap()`的重载方法,指定...

    android bitmap图片压缩

    在Android开发中,图片处理是必不可少的一部分,尤其是对于性能优化来说,Bitmap的合理管理显得尤为重要。Bitmap对象在内存中占据的大小直接关系到应用的内存消耗,可能导致内存溢出(OOM)问题。本文将深入探讨如何...

    Android View转成Bitmap

    解决方法是合理控制缓存大小,适时调用`destroyDrawingCache()`,并考虑使用Bitmap的压缩选项来减少内存占用。 - **图像质量与透明度问题**:在转换过程中,保持View的Alpha通道设置和背景色透明至关重要,否则可能...

    android bitmap

    - 对于大图,应在低分辨率下加载,然后根据需要动态调整大小,以节省内存。 - 使用PurgeableBitmap或LruCache进行内存缓存管理,防止内存溢出。 - 使用inBitmap特性,让BitmapFactory复用已解码的Bitmap内存,...

    android Tif Tiff格式的图片转换成bitmap 读取TIFF传真格式图片DEMO下载

    - 考虑到Android设备的内存限制,转换后的Bitmap应使用适当配置,如调整大小、选择适当的压缩格式(如ARGB_8888或RGB_565)等,以减少内存消耗。 - 使用异步操作,避免UI线程阻塞,可以使用AsyncTask或其他异步...

    处理bitmap内存溢出问题

    在Android开发中,处理`Bitmap`内存溢出问题是一个常见的挑战,尤其是在处理高分辨率或大尺寸图片时。当应用程序尝试加载或操作一张超出虚拟机内存预算的`Bitmap`时,系统会抛出`java.lang.OutOfMemoryError: bitmap...

    将Bitmap转成byte[]小例子

    - 质量与大小:在压缩Bitmap时,可以通过调整compress()方法的第二个参数(quality)来控制压缩质量,降低质量会减少文件大小但可能导致图像失真。 - 内存管理:处理大图时,要特别注意内存使用。可以使用...

    Android实现Bitmap位图旋转效果

    - 旋转操作可能会导致Bitmap的尺寸改变,因此在旋转后可能需要调整新的Bitmap大小以适应屏幕。 - 如果旋转后的Bitmap尺寸过大,可能会消耗大量内存,导致性能问题甚至内存溢出。因此,旋转前应考虑是否需要先对...

    Bitmap的一些操作

    在Android开发中,经常需要对图片进行尺寸调整以适应不同的屏幕大小或优化性能。Bitmap提供了缩放的方法,如`createScaledBitmap()`,这个方法接受源Bitmap、目标宽度、目标高度和是否保持原图比例作为参数。保持...

Global site tag (gtag.js) - Google Analytics