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; import android.os.Bundle; import android.widget.ImageView; public class PicActivity extends Activity { final int reflectionGap = 4; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.picture); ImageView imageView = (ImageView) findViewById(R.id.pic); Bitmap originalImage = BitmapFactory.decodeResource(this .getResources(), R.drawable.car); int width = originalImage.getWidth(); int height = originalImage.getHeight(); Matrix matrix = new Matrix(); //matrix.setRotate(30); matrix.preScale(1, -1); Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 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(originalImage, 0, 0, null); Paint deafaultPaint = new Paint(); // 抗锯齿的方法 // deafaultPaint.setAntiAlias(true); canvas.drawRect(0, height, width, height + reflectionGap, deafaultPaint); canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null); Paint paint = new Paint(); // 抗锯齿的方法 // paint.setAntiAlias(true); //线性渐变 LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DARKEN)); canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint); imageView.setImageBitmap(bitmapWithReflection); } }



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

USB连接TF卡 SD卡硬件电路

1、电路芯片 TF卡芯片选择:GL823K。USB2.0 SD/MMC闪存读卡器单芯片。支持USB2.0高速传输,并符合通用串行总线规范。 它的引脚设计适合卡插口提供更容易的PCB布局。 TF卡防静电芯片:SMF05C。 2、电路 分享实际项目中用到的接口电路&#…

R语言-Kindle特价书爬榜示例 输出HTML小技巧

20170209更新: 根据回复提示,rvest包更新,原用函数html作废,需改用read_html 并后续amazon网页改版等 因此此文章代码失效!各位可看评论内容了解详情 等以后有空再重写一遍代码,抱歉。果然代码还是放在gith…

工业RS485接口电路设计

1、电路芯片 485芯片有很多种,项目中用的比较多的是高速SP3485。满足RS-485和RS-422串行协议的要求,兼容工业标准规范,数据传输速率可高达10Mbps(带负载)。 2、工业设计 485需要做防雷考虑、瞬态过电压抑制、阻抗匹配…

MyBatis学习笔记(一)——MyBatis快速入门

转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一、Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简…

一个USB HUB电路分享

1、USB HUB 当USB接口不够用的时候,可以采用USB HUB电路进行扩展,将一个USB接口扩展为多个,并可以使这些接口同时使用的装置。USB HUB根据所属USB协议可分为USB2.0 HUB、USB3.0 HUB与USB3.1 HUB。 选用的USB HUB芯片为 USB2514B. 参考文档&…

RIP、 OSPF、 EIGRP的区别

我们前面已经简单介绍了三种类型的动态路由协议算法分别是距离矢量算法,链路状态算法以及平衡混合算法,那么咱们今天就来看看这几种算法的类型代表:RIP、OSPF、EIGRP。而且它们都是内部网关协议(IGP),也就是…

GDI+ 设置不同的分辨率来显示不同大小的图片

通过改变内存图像的分辨率来改变图像在屏幕的大小。 原理是:屏幕的大小/图像(内存的图像)的大小 屏幕的分辨率/图像(内存的图像)的分辨率。 注意:当图像的分辨率率变大时,图像本身的像素点的大小…

关于UILabel

一:创建一个label UILabel *label [[UILabel alloc]initWithFrame:CGRectMake(15, 100, 345, 100)]; 二:UILabel的一些属性 (1) 设置文字:label.text "这是我的一个Label"; (2) 设置文字颜色:label.textColor [UIC…

CM3计算板安装硬件时钟DS3231

1、硬件连接 DS3231是高速(400kHz)I2C接口的实时时钟芯片,0C至40C范围内精度为2ppm,-40C至85C范围内精度为3.5ppm,工作电压3.3V,提供电池备份,具有输入低功耗,实时时钟产生秒、分、…

初识JavaScript———JavaScript注意事项(1)

javascript能实现高级编程语言所不能实现的效果。javascript区分大小写。 JS能单独写在一个文件上&#xff0c;文件后缀为JS。JS文件不能直接运行&#xff0c;需嵌入到HTML文件中执行&#xff0c;我们需在HTML中添加如下代码&#xff0c;就可将JS文件嵌入HTML文件中。 <scri…

Source Insight(vs2012,ultraedit) 中Tab键设置为4个空格代替

From: http://blog.csdn.net/wfdtxz/article/details/8520629 Source insight中显示TAB符用4个空格代替 Options->Document Options 将 Visible tabs 打勾 - Source insight中将输入的TAB符转换为空格: 1. Options->Document Options 将 Expand Tabs 打勾2. TAB符宽度…

虚拟机性能测试:八 性能分析—Windows体验指数

先上总分&#xff0c;由于Windows VitualPC不支持Windows体验指数评分&#xff0c;所以它的分数为0。 通过对比发现除了vmware对图形处理的较好外&#xff0c;其它的虚拟机图形的处理都不怎么样。这也是影响体验指数的主要原因。其他的还是差别不大的。转载于:https://blog.51c…

java servlet+oracle 新手可看

最近公司领导告诉接下去接的一个产品&#xff0c;可能会涉及到oracle数据库&#xff0c;以前用得最多的是mssql,前些时间学了下mysql也算少许用过。oracle没接触过。应为我之前做过.net开发&#xff0c;所以数据访问接口这块&#xff0c;涉及到的ashx wcf webserver这些&#x…

Forms身份验证基本原理

要采用Forms身份验证&#xff0c;先要在应用程序根目录中的Web.config中做相应的设置: <authentication mode"forms"> <forms name".ASPXAUTH " loginUrl"/login.aspx" timeout"30" path "/"> </form…

我的SourceInsight配置(附图)

SourceInsight是个不错的工具&#xff0c;在开发过程中查看代码还是非常方便的&#xff0c;但是经常会出现这样一个问题&#xff1a;在sourceInsight中缩进整齐的代码&#xff0c;通过其他编辑器打开就不再对齐了&#xff0c;这看上去非常不爽。 在经过反复搜索、总结后&#…

onvif概念及应用?

From: http://www.seeyoucctv.com/Security_camera/948.html 什么是ONVIF? 2008年5月&#xff0c;由安讯士(AXIS)联合博世(BOSCH)及索尼(SONY)公司三方宣布将携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛&#xff0c;取名为ONVIF&#xff08;Open Network V…

ONVIF测试方法及工具

From: http://www.jiangyu.org/onvif-test-tool-and-method/ 设备是否支持ONVIF验证 1 ONVIF Test Tool安装 1.1PC安装环境要求&#xff1a;装有Microsoft .Net Framework 3.5或以上版本。 1.2安装源文件请见&#xff1a;ONVIF Conformance Test Tools.rar 2 ONVIF Conforma…

JavaScript窗体控制函数

2019独角兽企业重金招聘Python工程师标准>>> moveBy 从当前位置水平移动窗体x个像素&#xff0c;垂直移动窗体y个像素&#xff0c;x为负数&#xff0c;将向左移动窗体&#xff0c;y为负数&#xff0c;将向上移动窗体 moveTo 移动窗体左上角到相对于屏幕左上角的(x,y…

onvif规范 中文介绍

From: http://blog.csdn.net/ghostyu/article/details/8162193 什么是ONVIF ? ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准&#xff0c;如WS系列标准等。 ONVIF规范的目标是实现一个网络视频框架协议&#xff0c;使不同厂商所…

16、常用shell命令方法

1、shell基本 2、父shell在执行shell命令时&#xff0c;通常是创建子shell&#xff0c;继承父shell环境&#xff0c;执行命令&#xff0c;退出&#xff0c;相关环境销毁&#xff1b;父shell得到子shell的退出状态。 通过命令.或source来使其有当前环境中执行&#xff0c;而不创…