笔记14 | 图片倒影+渐变效果

前言

长假归来第一发,来学习个简单的图片倒影渐变效果

地址

http://blog.csdn.net/xiangyong_1521/article/details/78195950

目录

  • 需要实现的效果
  • 主要代码
  • 链接

一. 需要实现的效果


二. 主要代码

public class MainActivity extends Activity {      private ImageView mRevertImageView;      private Bitmap mSourceBitmap;  //原图      private Bitmap mRevertBitmap;  //倒立图      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          mRevertImageView = (ImageView)findViewById(R.id.im_revert);          mSourceBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.source);          mRevertImageView.setBackground(new BitmapDrawable(getResources(), revertBitmap(mSourceBitmap)));      }      private Bitmap revertBitmap(Bitmap originalImage) {          final int reflectionGap = 4;        int width = originalImage.getWidth();         int height = originalImage.getHeight();        Matrix matrix = new Matrix();         matrix.preScale(1, -1); //实现图片的反转        Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height / 2, width, height / 2, matrix, false); //创建反转后的图片Bitmap对象,图片高是原图的一半。        Bitmap bitmapWithReflection = Bitmap.createBitmap(width,             (height + height / 2), Config.ARGB_8888); //创建标准的Bitmap对象,宽和原图一致,高是原图的1.5倍。        Canvas canvas = new Canvas(bitmapWithReflection);        canvas.drawBitmap(originalImage, 0, 0, null); //创建画布对象,将原图画于画布,起点是原点位置。        Paint defaultPaint = new Paint();         canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);        canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);//将反转后的图片画到画布中。        Paint paint = new Paint();         LinearGradient shader = new LinearGradient(0,             originalImage.getHeight(), 0, bitmapWithReflection.getHeight()                     + reflectionGap, 0×70ffffff, 0×00ffffff,             TileMode.MIRROR); //创建线性渐变LinearGradient 对象。        paint.setShader(shader);        paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));        canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()             + reflectionGap, paint); //画布画出反转图片大小区域,然后把渐变效果加到其中,就出现了图片的倒影效果。        return bitmapWithReflection;     }  }

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2017-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码匠的流水账

聊聊HystrixThreadPool

hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java

791
来自专栏Golang语言社区

Knapsack problem algorithms for my real-life carry-on knapsack

I'm a nomad and live out of one carry-on bag. This means that the total weight o...

1142
来自专栏搞前端的李蚊子

Html5模拟通讯录人员排序(sen.js)

// JavaScript Document  var PY_Json_Str = ""; var PY_Str_1 = ""; var PY_Str_...

5976
来自专栏linux驱动个人学习

高通msm8909耳机调试

1、DTS相应修改: DTS相关代码:kernel/arch/arm/boot/dts/qcom/msm8909-qrd-skuc.dtsi: 1 s...

7605
来自专栏增长技术

App Guide相关

##TourGuide https://github.com/worker8/TourGuide

702
来自专栏专知

2018年SCI期刊最新影响因子排行,最高244,人工智能TPAMI9.455

2018年6月26日,最新的SCI影响因子正式发布,涵盖1万2千篇期刊。CA-Cancer J Clin 依然拔得头筹,其影响因子今年再创新高,达244.585...

1282
来自专栏跟着阿笨一起玩NET

将图片保存到XML文件的方法

752
来自专栏Hadoop数据仓库

Oracle sqlldr 如何导入一个日期列

1. LOAD DATA INFILE * INTO TABLE test FIELDS TERMINATED BY X'9' TRAILING NULLCO...

1806
来自专栏我和未来有约会

简练的视图模型 ViewModel

patterns & practices Developer Center 发布了 Unity Application Block 1.2 for Silver...

2199
来自专栏前端儿

Web 前端颜色值--字体--使用,整理整理

颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) 表示法进行定义。对光源进行设置的最低值可以是 0(十六进制 00)。最高值是 2...

2322

扫码关注云+社区