- 浏览: 31760 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
dolphin0618:
我要把查询出来的数据不只是打印,我要存入变量里,方法是什么
xquery在java中的应用 -
dolphin0618:
你能把XML发一下么
xquery在java中的应用 -
zhuqiang5138:
总感觉自己最近的记忆力不是很好,就觉着应该把学过的东西,现在正 ...
My Android成长之路(一) -
ge_cc:
ge_cc 写道 //这里不知道问什么我之前做的时候 用一个参 ...
jmagick开发 备忘 -
ge_cc:
//这里不知道问什么我之前做的时候 用一个参数的构造函数 怎么 ...
jmagick开发 备忘
图片的操作有哪些呢?
如:zoomer-缩放,
corner-圆角,
reflected-倒影,
grayscale-去色黑白,
drawToBitmap-转换格式,
......
BitmapUtil代码:
public class BitmapUtil { // zoomer public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); float scaleWidth = w/(float)width; float scaleHeight = h/(float)height; matrix.postScale(scaleWidth, scaleHeight); Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); return bitmap2; } // draw2Bitmap public static Bitmap draw2Bitmap(Drawable drawable){ int width = drawable.getIntrinsicHeight(); 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; } // corner public static Bitmap getCornerBitmap(Bitmap bitmap, float roundPX){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Bitmap bitmap2 = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap2); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, width, height); final RectF rectF = new RectF(rect); paint.setColor(color); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); canvas.drawRoundRect(rectF, roundPX, roundPX, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return bitmap2; } // reflected public static Bitmap createReflectedBitmap(Bitmap bitmap){ final int reflectedGap = 4; int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); matrix.preScale(1, -1); Bitmap reflectedImage = Bitmap.createBitmap(bitmap, 0, height/2, width, height/2, matrix, false); Bitmap reflectedBitmap = Bitmap.createBitmap(width, (height + height/2), Config.ARGB_8888); Canvas canvas = new Canvas(reflectedBitmap); canvas.drawBitmap(bitmap, 0, 0, null); Paint defaultPaint = new Paint(); canvas.drawRect(0, height, width, height + reflectedGap, defaultPaint); canvas.drawBitmap(reflectedImage, 0, height + reflectedGap, null); Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0, reflectedBitmap.getHeight() + reflectedGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawRect(0, height, width, reflectedBitmap.getHeight() + reflectedGap, paint); return reflectedBitmap; } } //grayscale public static Bitmap toGrayscale(Bitmap bmpOriginal) { int width=bmpOriginal.getWidth(); int height = bmpOriginal.getHeight(); Bitmap bmpGrayscale = Bitmap.createBitmap(width, height,Bitmap.Config.RGB_565); Canvas c = new Canvas(bmpGrayscale); Paint paint = new Paint(); ColorMatrix cm = new ColorMatrix(); cm.setSaturation(0); ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm); paint.setColorFilter(f); c.drawBitmap(bmpOriginal, 0, 0, paint); return bmpGrayscale; }
应用的话就如:
Bitmap bitmap = bitmapProcess.drawable2Bitmap(drawable); Bitmap zoomBitmap = bitmapProcess.zoomBitmap(bitmap, 100, 100); ...... //drawable to bitmap imgView.setImageBitmap(roundBitmap); //bitmap to drawable Drawable roundDrawable = new BitmapDrawable(roundBitmap); imgView.setBackgroundDrawable(roundDrawable);
发表评论
-
CursorAdapter Filter
2012-01-18 20:30 1252关于使用AutoCompleteTextV ... -
apks
2012-01-11 20:57 1917CursorAdapter如何实现关键字过滤 2010- ... -
过滤搜索条件
2012-01-05 11:53 1297http://download.csdn.net/tag/an ... -
PopupWindow的应用 2
2011-12-23 15:37 961接上面的PopupWindow的布局文件layout_popu ... -
PopupWindow的应用 1
2011-12-23 15:31 815PopupWindow的使用,这里是分析QQ通讯录的源码看到的 ... -
点击拨号键,可选择自己的程序
2011-12-22 14:42 1243一般点击拨号键 会跳出你手机中所安装的有关联系人程序,比如:系 ... -
Cursor中文拼音排序
2011-12-20 13:57 960中文排序:有可能会想到pinying4j.jar 这个貌似 太 ... -
android 联系人快速搜索
2011-12-20 13:53 2286先来分析下 如果是搜索 ... -
ListView刷新慢 注意点
2011-11-23 14:26 2416Adapter是ListView界面与数据之间的桥梁,当列表里 ... -
My Android成长之路(四)——【xml解析之XmlPull】
2011-11-11 16:43 1015在android中xml的解析也是比较方便的 因为androi ... -
My Android成长之路(三)——【HttpClient】
2011-11-11 16:22 712HttpClient经常在开发的过程中会 ... -
My Android成长之路(二)——【JSON】
2011-11-11 16:11 1814如果android客户端接收到的是JSON字符串,就需 ... -
xquery在java中的应用
2011-11-11 10:08 1129/** * 执行查询 * @throws File ... -
android jni开发环境的搭建
2011-11-10 10:46 1419最近一个项目可能会用 ... -
My Android成长之路(一)
2011-11-01 10:31 1033我们接触到一个新的技术或者是语言的时候,我们应该都会不禁 ... -
android以后的学习过程中可能会需要一直温习的知识
2011-11-01 09:29 6921、android developer 讲解的各种布局和控件 ... -
对XML文件进行检索的语言Xquery
2011-10-31 12:36 963第一次听到的XQuery,还是我的一个同事 看我闲着没事 叫我 ... -
jmagick开发 备忘
2011-08-24 10:52 20811、为什么要使用jmagick,我大概是这么想的,因为j ... -
android利用Serialization向服务器端发送任意的文件(二)
2011-06-17 13:12 1073public class AndroidClientAc ... -
android利用Serialization向服务器端发送任意的文件(一)
2011-06-17 13:04 12631、 先创建一个Java实现了Serializable接口的类 ...
相关推荐
3. 实现手势监听器:`GestureListener`和`ScaleListener`需要重写对应的手势回调,如`onDown()`, `onScroll()`, `onSingleTapUp()`, `onScaleBegin()`, `onScaleEnd()`等,根据手势类型进行相应的图片操作。...
本文将深入探讨一个强大的Android图片操作库,并基于提供的压缩包文件"Liberuman-ImageSet-d621930"进行详细讲解。 标题中的“Android-强大的图片操作库”指的可能是一个专门用于Android平台的图片处理框架,这类库...
在Android开发中,有时我们需要实现一个功能,当用户在应用中一段时间内没有进行任何操作时,系统自动触发某个行为,例如进入图片轮播模式。这个功能可以提高用户体验,特别是对于那些需要展示信息或者吸引用户注意...
这个名为"Android-一个Android图片缩放查看控件支持手势"的项目,旨在提供一个自定义的视图控件,它允许用户通过手势进行图片的放大、缩小以及平移操作,提升用户体验。下面我们将深入探讨这个控件的关键知识点和...
在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中嵌入网页内容。在某些场景下,用户可能需要查看WebView加载的网页中的图片,此时,提供一个点击图片放大显示的功能会大大提升用户体验...
在Android开发中,为了增强应用的安全性,保护敏感图片资源不被未经授权的用户访问或篡改,我们可以对图片资源进行加密。以下是对标题"android 中图片资源的加密"的详细解释,以及如何实现这一功能。 1. **图片资源...
在Android开发过程中,图片资源是应用界面设计的重要组成部分,它们能够增强用户体验,提供直观的视觉信息。本资源包“android开发常用图片”包含了全面的图片素材,适合Android开发者在构建应用时参考和使用。以下...
在Android平台上,框选图片中的一部分并截取是一项常见的需求,比如在应用中实现自定义截图功能、编辑图片或者在图像处理中选择特定区域。这个功能涉及到多个Android SDK中的类和方法,包括图像处理、视图操作以及...
在Android开发中,从网络获取图片资源并进行显示、缩放和触摸操作是常见的需求。以下将详细讲解这个过程中的关键技术点。 首先,从网络异步加载图片资源是为了避免阻塞主线程,确保用户界面(UI)的流畅性。Android...
在Android开发中,实现图片浏览的全屏缩放效果是一项常见的需求,特别是在社交应用中,如QQ好友动态和微信朋友圈。这种功能不仅需要提供良好的用户体验,还需要考虑性能和内存优化,因为图片通常较大,处理不当可能...
在Android开发中,有时我们需要对用户上传的图片进行特定形状的裁剪,比如常见的圆形头像。本示例"android圆形图片裁剪demo以及实现"就是针对这一需求提供的一种解决方案。下面将详细介绍如何在Android应用中实现...
在Android开发中,实现“多张图片展示”的功能是一个常见的需求,尤其在社交应用中,如微信的朋友圈功能。这个功能允许用户通过多种途径选择图片,例如从相册选取多张图片或者直接拍照,之后还能提供删除选项。下面...
首先,我们需要了解Android 7.0引入的一些新特性,虽然此功能在更早的版本中也可实现,但在7.0版本,系统对权限管理和用户体验做了优化,使得开发者可以更加便捷地处理图片选取。 1. **请求权限**:Android 6.0...
这个压缩包文件“Android图片处理源码”很可能包含了一些用于Android平台的图片处理库或者示例代码,帮助开发者更好地理解和实现图片的加载、显示、裁剪、滤镜效果、压缩等功能。下面我们将深入探讨Android图片处理...
在Android开发中,实现类似支付宝五福图片翻转效果,主要涉及到的是视图动画(View Animation)或帧动画(Frame Animation)以及自定义View的知识。Android Studio作为Android开发的官方集成开发环境,提供了丰富的...
当我们需要在Android应用程序中保存图片到手机相册时,需要考虑多种因素,例如手机品牌、图片格式、文件操作技巧等。本文将详细介绍Android开发实现保存图片到手机相册功能的实现方法和相关知识点。 一、图片格式的...
在Android中,通常会将图片保存到公共的外部存储目录,这样系统相册应用可以检测到并显示出来: ```java private void saveImageToGallery(byte[] imageData) { File storageDir = Environment....
在Android开发中,实现图片翻转动画是一种常见的交互设计,可以增强用户体验,使得应用看起来更加生动有趣。本文将深入探讨如何在Android平台上实现3D图片翻转动画。 首先,我们需要了解Android中的动画系统。...
在Android平台上,从指定文件夹显示图片涉及到一系列的步骤和技术,包括文件系统操作、图片加载库的使用以及UI设计。以下是对这个主题的详细讲解: 首先,我们需要理解Android的文件系统结构。Android设备通常有两...
总的来说,这个项目涵盖了Android图片处理的核心技术,包括加密解密的安全性,以及图片切割的灵活性。对于Android开发者而言,理解并掌握这些技术对于提升应用的安全性和功能性都有很大帮助。通过源码学习,可以深入...