文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-05-31 08:27

关注

 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;   }    } 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯