广告
返回顶部
首页 > 资讯 > 精选 >Android中几种图片特效的处理的实现方法
  • 134
分享到

Android中几种图片特效的处理的实现方法

android图片特效roi 2023-05-31 08:05:53 134人浏览 薄情痞子
摘要

 Android中几种图片特效的处理这里有放大缩小图片,获得圆角图片,获得带倒影图片的几种方法及实现代码,package com.Android.tutor; import android.graphics.Bitmap; imp

 Android中几种图片特效的处理

这里有放大缩小图片,获得圆角图片,获得带倒影图片的几种方法及实现代码,

package com.Android.tutor; import android.graphics.Bitmap; import android.graphics.canvas; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFORMat; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Bitmap.Config; import android.graphics.PorterDuff.Mode; import android.graphics.Shader.TileMode; import android.graphics.drawable.Drawable; public class ImageUtil {      //放大缩小图片   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;   }   //将Drawable转化为Bitmap    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;            }        //获得圆角图片的方法   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;   }   //获得带倒影的图片方法   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;   }    } 

--结束END--

本文标题: Android中几种图片特效的处理的实现方法

本文链接: https://www.lsjlt.com/news/224407.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作