- 浏览: 106831 次
- 性别:
- 来自: 陕西
最新评论
-
yhbanywn:
非常感谢您的解答!!!解决了困扰我多日的难题。
Binary XML file line #2: Error inflating class -
jianghaijun:
...
Binary XML file line #2: Error inflating class -
天馒:
<ListView android:id= ...
android特效展示一:ListView -
newfido:
Android生成缩略图 -
chy116449859:
太感谢LZ了,哎 这个BUG困扰了我2天,终于解决了! 虽 ...
android中加载图片时出现oom
整理了一下目前Android开发中图片的各种处理方法:
Java代码
- /**
- * 使头像变灰
- * @param drawable
- */
- public static void porBecomeGrey(ImageView imageView, Drawable drawable) {
- drawable.mutate();
- ColorMatrix cm = new ColorMatrix();
- cm.setSaturation(0);
- ColorMatrixColorFilter cf = new ColorMatrixColorFilter(cm);
- drawable.setColorFilter(cf);
- imageView.setImageDrawable(drawable);
- }
Java 代码复制内容到剪贴板
- Drawable drawable = new FastBitmapDrawable(bitmap);
Java 代码复制内容到剪贴板
- public byte[] getBitmapByte(Bitmap bitmap){
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
- try {
- out.flush();
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return out.toByteArray();
- }
- public Bitmap getBitmapFromByte(byte[] temp){
- if(temp != null){
- Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);
- return bitmap;
- }else{
- return null;
- }
- }
Java 代码复制内容到剪贴板
- /**
- * 将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;
- }
Java 代码复制内容到剪贴板
- /**
- * 获取图片的倒影
- * @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);
- paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
- canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()
- + reflectionGap, paint);
- return bitmapWithReflection;
- }
Java 代码复制内容到剪贴板
- /**
- * 把图片变成圆角
- * @param bitmap 需要修改的图片
- * @param pixels 圆角的弧度
- * @return 圆角图片
- */
- public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
- 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);
- final float roundPx = pixels;
- 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;
- }
Java 代码复制内容到剪贴板
- /**
- * 缩放图片
- * @param bmp
- * @param width
- * @param height
- * @return
- */
- public static Bitmap PicZoom(Bitmap bmp, int width, int height) {
- int bmpWidth = bmp.getWidth();
- int bmpHeght = bmp.getHeight();
- Matrix matrix = new Matrix();
- matrix.postScale((float) width / bmpWidth, (float) height / bmpHeght);
- return Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeght, matrix, true);
- }
Java 代码复制内容到剪贴板
- /**
- * @param photoPath --原图路经
- * @param aFile --保存缩图
- * @param newWidth --缩图宽度
- * @param newHeight --缩图高度
- */
- public static boolean bitmapToFile(String photoPath, File aFile, int newWidth, int newHeight) {
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inJustDecodeBounds = true;
- // 获取这个图片的宽和高
- Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);
- options.inJustDecodeBounds = false;
- //计算缩放比
- options.inSampleSize = reckonThumbnail(options.outWidth, options.outHeight, newWidth, newHeight);
- bitmap = BitmapFactory.decodeFile(photoPath, options);
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
- byte[] photoBytes = baos.toByteArray();
- if (aFile.exists()) {
- aFile.delete();
- }
- aFile.createNewFile();
- FileOutputStream fos = new FileOutputStream(aFile);
- fos.write(photoBytes);
- fos.flush();
- fos.close();
- return true;
- } catch (Exception e1) {
- e1.printStackTrace();
- if (aFile.exists()) {
- aFile.delete();
- }
- Log.e("Bitmap To File Fail", e1.toString());
- return false;
- }
- }
Java 代码复制内容到剪贴板
- /**
- * 计算缩放比
- * @param oldWidth
- * @param oldHeight
- * @param newWidth
- * @param newHeight
- * @return
- */
- public static int reckonThumbnail(int oldWidth, int oldHeight, int newWidth, int newHeight) {
- if ((oldHeight > newHeight && oldWidth > newWidth)
- || (oldHeight <= newHeight && oldWidth > newWidth)) {
- int be = (int) (oldWidth / (float) newWidth);
- if (be <= 1)
- be = 1;
- return be;
- } else if (oldHeight > newHeight && oldWidth <= newWidth) {
- int be = (int) (oldHeight / (float) newHeight);
- if (be <= 1)
- be = 1;
- return be;
- }
- return 1;
- }
Android边框圆角
XML/HTML 代码复制内容到剪贴板
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schema...android">
- <solid android:color="#000000" />
- <corners android:topLeftRadius="10dp"
- android:topRightRadius="10dp"
- android:bottomRightRadius="10dp"
- android:bottomLeftRadius="10dp"/>
- </shape>
解释:solid的表示填充颜色,为了简单,这里用的是黑色。
而corners则是表示圆角,注意的是这里bottomRightRadius是左下角而不是右下角,bottomLeftRadius右下角。
当然上面的效果也可以像下面一样设置,如下: <corners android:radius="5dp" />
原文来自:http://06peng.com/read.php/52.htm
发表评论
-
网络VPN绿色版
2013-05-28 12:00 2093非常好用,地址如下: www.grjsq.biz -
android 屏幕适配
2013-02-02 16:03 838笔记本屏幕像素密度计算方法:根号√(横向分辨率^2+纵向分辨 ... -
Binary XML file line #2: Error inflating class
2012-09-25 18:05 20330自定义一个View,并在layout文件中进行部署,执 ... -
android中加载图片时出现oom
2012-09-25 18:04 5847今天做项目,发现需要显示一张超大图片,处理过后,还有56 ... -
android 代码混淆问题解决
2012-06-30 16:48 8245android代码混淆报错总结:java.io.IOExcep ... -
Android SDK更新后 ADT R17 E/AndroidRuntime : java.lang.NoClassDefFoundError问题的解决
2012-06-19 11:45 5570更新了Android SDK 和ADT 到 R17 以后出现了 ... -
NDK 环境搭建 - 安装配置 Cygwin
2012-05-08 18:07 11301. NDK 下载 最新版 Android N ... -
android检测网络连接
2012-05-07 14:57 1283ConnectivityManager conn ... -
android 屏幕适配问题
2011-10-27 21:49 905android 屏幕适配问题 转自http:// ... -
Android如何防止apk程序被反编译
2011-08-31 09:48 1261作为Android应用开发者,不得不面对一个尴尬的局面, ... -
Android自定义字体
2011-08-30 23:42 962要在其他平台实现自定义字体可谓是相当的麻烦,但是在An ... -
Android生成缩略图
2011-08-30 23:36 13280Android生成缩略图-使用Android 2.2新特性 ... -
android特效展示一:ListView
2011-08-30 22:29 4695ViewGroup等空间的动画效果实战常常我们会为一些空间制定 ... -
tmp
2011-08-09 19:53 0183.62.138.47:2200 root br ... -
AndroidManifest.xml文件详细说明
2011-08-06 09:37 1201本文为转载,原文地址:http://www.cnblogs ... -
Android学习资料
2011-05-25 10:01 906供大家下载学习,希望大家支持一下 1、【eoeAndroid ... -
取代opencore的stagefright
2011-05-24 13:28 1716引用原文:http://blog.chinaunix.net/ ...
相关推荐
这个压缩包文件“Android图片处理源码”很可能包含了一些用于Android平台的图片处理库或者示例代码,帮助开发者更好地理解和实现图片的加载、显示、裁剪、滤镜效果、压缩等功能。下面我们将深入探讨Android图片处理...
"android图片处理集合demo"是一个示例项目,集中展示了多种图片处理技术。虽然代码可能没有经过精心整理,但仍然能为开发者提供宝贵的参考。 1. 图片加载库: Android原生的Bitmap API在处理大量或大尺寸图片时...
理解如何创建、加载、解码和管理Bitmap以优化内存使用是Android图片处理的基础。 2. **OpenGL ES** - 在高性能图像处理中,可能会涉及使用OpenGL ES进行渲染,这需要理解顶点坐标、纹理映射、着色器语言(GLSL)等...
在Android开发中,图片处理是不可或缺的一部分,尤其在创建用户界面和提高用户体验时。本教程将深入探讨如何在Android...通过动手实践,你会更深入地理解Android图片处理的各种技巧,并能自如地运用到自己的项目中。
本篇将深入探讨Android图片处理工具的相关知识点,帮助开发者更好地理解和运用这些工具。 首先,Android SDK本身提供了基本的图片处理能力,例如Bitmap类,它是Android中处理图像的基础。Bitmap可以用来加载、创建...
这个压缩包文件"全部android图片处理特效"显然包含了实现这些特效的各种代码示例或库。以下是对这些特效的详细解析: 1. **图片缩放**:Android提供了Bitmap类,可以使用其`createScaledBitmap()`方法对图片进行...
通过研究这个项目,开发者不仅可以掌握Android图片处理的基础知识,还能了解到如何在实际开发中提高用户体验,比如通过异步处理防止UI卡顿,通过合理的内存管理避免OOM(Out Of Memory)错误。同时,此项目还可以...
在Android开发中,图片处理是一项常见的任务,尤其是在网络通信、数据存储或用户界面展示时。本文将详细讨论如何使用基于base64的图片处理工具类,以实现图片与base64字符串之间的转换。 首先,我们要理解什么是...
接下来,我们将深入探讨Android中实现图片灰度处理的原理与方法。 首先,理解灰度图像的基本概念至关重要。灰度图像,顾名思义,是只有灰度层次而没有颜色的图像。每个像素点的值代表一个灰度级,通常范围在0(黑色...
在Android开发中,有时我们需要对显示的图片进行特殊处理,比如让图片呈现圆角或完全圆形。本知识点将深入探讨如何在Android应用中完美实现图片的圆角和圆形效果。 首先,我们来看如何实现图片的圆角效果。Android...
在Android平台上,图片管理器是一种用于组织、浏览和操作设备上图像的应用组件。这个特定的“android 图片管理器”项目可能是一个示例或学习资源,尽管存在一些已知的bug,但仍然提供了有价值的学习机会。下面我们将...
图片处理sdk(just for eclipse) Note: 新的项目(for studio)转移到https://github.com/jarlen/PhotoEdit (包括jni本地源码) cn.ffmpeg gif mp4 互转 com.js.photosdk.bodywarp 图片变形 com.js.photosdk.crop ...
综上所述,Android图片处理涉及多个层面,需要根据具体需求选择合适的方法和技术。通过合理的图片加载策略、内存管理、性能优化,以及运用各种图片处理库,可以创建出用户友好且高效的图片应用。
为了处理图片的平移,我们需要实现`onScroll()`方法。在该方法中,我们可以更新图片的位置,使其跟随手指的滑动。同时,为了保持图片在边界内的显示,我们需要添加适当的边界检查。 对于图片的缩放,我们需在`on...
《Android应用源码之100种图片处理效果大全项目》是一个非常实用的学习资源,它提供了丰富的图片处理技术实现,适合Android开发者深入理解和实践。在这个项目中,你可以找到各种图片处理技术的应用实例,涵盖了许多...
android资源参考代码,关于对图片的处理,用代码动态分割图片,使其形成动画
这里介绍的Android图片处理方法包括: 转换 – drawable To bitmap 缩放 – Zoom 圆角 – Round Corner 倒影 – Reflected bitmapPrcess code: package com.learn.games; import android.graphics.Bitmap; ...
在本篇毕业论文"基于Android的图片管理器设计与实现"中,作者深入探讨了如何构建一个高效、用户友好的移动设备图片管理应用。论文主要分为五个部分,涵盖了系统开发背景、需求分析、系统设计、详细设计以及系统实现...
这些库可以帮助开发者轻松地处理图片的加载和显示,同时提供对图片格式、尺寸和质量的优化。 7. **高性能渲染** 为了确保流畅的用户体验,开发者可能考虑了硬件加速。通过在自定义View中开启硬件加速,可以利用GPU...
在Android开发中,图片处理是一项常见的任务,尤其是在创建动态效果或者用户交互时。本文将深入探讨如何实现一个功能,让图片能够一直匀速旋转。这个技术可以用于制作各种动画效果,比如加载指示器或者趣味性的用户...