Android 图片特效处理的方法实例_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; 

时间: 2024-12-22 10:02:33

Android 图片特效处理的方法实例_Android的相关文章

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

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

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

android Tween Animation属性设置方法实例_Android

在Android开发中,Animation是用来给控件制作效果的.大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放.在使用Animation时,可以在.java文件中用java代码对其进行设置,这样的优点是可以方便调试程序效果:另外一种方法就是在xml中对控件的属性做设置,好处是代码的重用性比较高,缺点是不方便调试. 一.在java代码中使用Animation在java代码中使用Animation主要分为下面4个步骤.创建一个AnimationSet类,An

Android UI使用HTML布局方法实例_Android

很多时候我们用HTML布局会更方便直接,记录一下. 我现在主要是直接调用服务器的网页(实际上是jsp的,只是返回的是html),所以需要联网,第一步添加权限. 复制代码 代码如下: <uses-permission android:name="android.permission.INTERNET" /> 布局文件直接用一个WebView,如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8

Android中使用AndroidTestCase的方法实例_Android

Android 使用 AndroidTestCase 的步骤1.新建一个类继承 AndroidTestCase 复制代码 代码如下: public class TestAudio extends AndroidTestCase {      private AudioManager mAudioManager;      private boolean mUseFixedVolume;      private final static long TIME_TO_PLAY = 2000;    

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

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

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

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

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