Android 图片特效处理的方法实例

1. 图片放缩

代码如下:

// zoom 放缩 
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; 
}

2. 获得圆角图片

代码如下:

// Round Corner Bitmap 获得圆角图片 
public static Bitmap getRoundCornerBitmap(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; 
}

3. 获得带倒影的图片

代码如下:

// Reflect Bitmap 获得带倒影的图片 
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; 
}

(0)

相关推荐

  • Android编程中图片特效处理方法小结

    本文实例总结了Android编程中图片特效处理方法.分享给大家供大家参考,具体如下: 这里介绍的Android图片处理方法包括: 转换 -  drawable To  bitmap 缩放 -  Zoom 圆角 -  Round Corner 倒影 -  Reflected bitmapPrcess  code: package com.learn.games; import android.graphics.Bitmap; import android.graphics.Canvas; impo

  • Android 图片特效如何实现及总结

    Android 图形特效 最近公司项目,有一个需求是做图片特效的任务,自己写了代码实现特效,但是不是很好,上网搜了相关资料,整理了一下比较全面的Android 图片特效的资料,大家可以看下, 一.图形特效(一)特效的实现方式 在Android中,提供了3种方式实现特效,setXXX方法,postXXX和preXXX()方法. 1.setXXX方法用于直接设置Matrix的值,每使用一次setXXX()方法,整个的Matrix都会变掉. 2.postXXX方法用于采用后乘的方式为Matrix设置值

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

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

  • Android图片特效:黑白特效、圆角效果、高斯模糊

    1.黑白效果 复制代码 代码如下: /**     * 将彩色图转换为黑白图     *      * @param 位图     * @return 返回转换好的位图     */    public static Bitmap convertToBlackWhite(Bitmap bmp) {        int width = bmp.getWidth(); // 获取位图的宽        int height = bmp.getHeight(); // 获取位图的高 int[] pi

  • Android 图片特效处理的方法实例

    1. 图片放缩 复制代码 代码如下: // zoom 放缩  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;      floa

  • Android 图片的三级缓存机制实例分析

    Android 图片的三级缓存机制实例分析 当我们获取图片的时候,如果不加以协调好图片的缓存,就会造成大流量,费流量应用,用户体验不好,影响后期发展.为此,我特地分享Android图片的三级缓存机制之从网络中获取图片,来优化应用,具体分三步进行: (1)从缓存中获取图片 (2)从本地的缓存目录中获取图片,并且获取到之后,放到缓存中 (3)从网络去下载图片,下载完成之后,保存到本地和放到缓存中 很好的协调这三层图片缓存就可以大幅度提升应用的性能和用户体验. 快速实现三级缓存的工具类ImageCac

  • Android图片实现压缩处理的实例代码

    整理文档,搜刮出一个Android图片实现压缩处理的实例代码,稍微整理精简一下做下分享. 详解: 1.获取本地图片File文件 获取BitmapFactory.Options对象 计算原始图片 目标图片宽高比 计算输出的图片宽高 2.根据宽高比计算options.inSampleSize值(缩放比例 If set to a value > 1, requests the decoder to subsample the original image, returning a smaller i

  • Android 图片添加水印的实现方法

    Android 图片添加水印的实现方法 实现效果图: 手机端打水印(文字和图片)使用的是Bitmap.Matrix和Canvas类的一些方法, 可以实现拉伸.旋转.位移等等效果. 原理很简单, 就是在画布Canvas上绘制图形.图片.文字等等, 得到你想要的效果图片. 百度搜索图片打水印有很多结果, 没找到斜着打水印的代码,有很多公司都要求上图的效果, 所以写着玩玩. /* 添加全屏斜着45度的文字 / public static Bitmap drawCenterLable(Context c

  • Android连接指定Wifi的方法实例代码

    本篇文章主要记录一下Android中打开Wifi.获取Wifi接入点信息及连接指接入点的方法. 自己写的demo主要用于测试接口的基本功能,因此界面及底层逻辑比较粗糙. demo的整体界面如下所示: 上图中的OPEN按键负责开启Wifi: GET按键负责获取扫描到的接入点信息. 当获取到接入点信息后,我选取了其中的名称及信号强度,以列表的形式显示在主界面下方,如下图: 当点击列表中的Item时,就会去连接对应的接入点. 自己的逻辑比较简单,测试时的代码,假定连接的是不许要密码或密码已知的接入点.

  • Android自定义View的实现方法实例详解

    一.自绘控件 下面我们准备来自定义一个计数器View,这个View可以响应用户的点击事件,并自动记录一共点击了多少次.新建一个CounterView继承自View,代码如下所示: 可以看到,首先我们在CounterView的构造函数中初始化了一些数据,并给这个View的本身注册了点击事件,这样当CounterView被点击的时候,onClick()方法就会得到调用.而onClick()方法中的逻辑就更加简单了,只是对mCount这个计数器加1,然后调用invalidate()方法.通过 Andr

  • Android 图片选择详解及实例代码

     Android 图片选择 可以达到的效果: 1.第一个图片的位置放照相机,点击打开照相机 2.其余的是显示全部存储的图片,点击一次是查看大图,长按则是每张图片出现一个checkBox,可以进行选择 下面是实例效果图 MainActivity 类 public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickLis

  • android针对json数据解析方法实例分析

    本文实例讲述了android针对json数据解析方法.分享给大家供大家参考.具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.

  • Android编程之九宫格实现方法实例分析

    本文实例讲述了Android编程之九宫格实现方法.分享给大家供大家参考,具体如下: 显示九宫格需要用GridView , 要显示每个格子中的视图有两种方式,第一种方式是做成xml文件,再将xml文件做成视图.第二种方式就是在代码中构建出这样一种布局,这里采用第一种方式来实现: GridView: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="ht

随机推荐