Bitamp生成倒影
发布日期:2021-06-30 11:22:42
浏览次数:2
分类:技术文章
本文共 2042 字,大约阅读时间需要 6 分钟。
main.activity如下:
package c.c;import android.os.Bundle;import android.widget.ImageView;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Shader.TileMode;/** * Demo:生成Bitmap的倒影 */public class MainActivity extends Activity { private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mImageView=(ImageView) findViewById(R.id.imageView); Bitmap rawBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.a); Bitmap newBitmap=getBitmapReflection(rawBitmap); mImageView.setImageBitmap(newBitmap); } private Bitmap getBitmapReflection(Bitmap rawBitmap) { final int gap = 4; int width = rawBitmap.getWidth(); int height = rawBitmap.getHeight(); Matrix matrix = new Matrix(); //逆置 matrix.preScale(1, -1); //倒影 Bitmap reflectionBitmap = Bitmap.createBitmap(rawBitmap, 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(rawBitmap, 0, 0, null); Paint paint=new Paint(); //画分界线 canvas.drawRect(0, height, width, height + gap, paint); //画倒影 canvas.drawBitmap(reflectionBitmap, 0, height + gap, null); //沿Y轴渐变效果 LinearGradient shader = new LinearGradient(0, rawBitmap.getHeight(), 0, bitmapWithReflection.getHeight() + gap, 0x70ffffff,0x00ffffff, TileMode.CLAMP); paint.setShader(shader); //因为有两层(倒影层和渐变),所以设置过渡模式 paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); //画一个具有渐变效果的矩形 canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()+ gap, paint); return bitmapWithReflection; } }main.xml如下:
转载地址:https://it9527.blog.csdn.net/article/details/8560107 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年05月01日 01时53分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux设置服务器禁止或开启ping包
2019-04-30
linux修改SSH默认22端口的方法
2019-04-30
mysql 设置max_allowed_packet 大小
2019-04-30
perl语言hello world程序
2019-04-30
perl中的特殊字符
2019-04-30
perl替换数组元素
2019-04-30
perl中的特殊变量$[
2019-04-30
perl中的函数,传参
2019-04-30
登录验证码使用汉字的方法
2019-04-30
easyui项目主页面架构搭建
2019-04-30
easyui修改回显使用form("load",row)
2019-04-30
mysql解决中文乱码问题
2019-04-30
点击劫持漏洞:使用X-Frame-Options 解决方法(应用tomcat)
2019-04-30
tar查看压缩包的内容,而不解压
2019-04-30
linux中命令cp复制拷贝访问权限和修改时间
2019-04-30
ifconfig命令常用方式
2019-04-30
linux使用内核模块和驱动
2019-04-30
linux中查找某目录下文件内容中出现某关键字
2019-04-30
Linux sync命令的作用分析
2019-04-30
linux系统命令vi存盘退出的其他方法
2019-04-30