Java实现图片倒影的源码实例内容
作者:anemone27 时间:2022-08-30 02:39:24
把做工程过程常用的一些代码段做个记录,下面代码是关于Java实现图片倒影的的代码,应该对大家有较大用处。
public class ButtonImageActivity extends Activity {
private ImageView image_btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image_btn=(ImageView)findViewById(R.id.image_btn);
Bitmap bitmap =((BitmapDrawable)getResources().getDrawable(R.drawable.image_btn)).getBitmap();
image_btn.setImageBitmap(createReflectedImage(bitmap));
image_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
}
private Bitmap createReflectedImage(Bitmap originalBitmap) {
final int reflectionGap = 4;
int width = originalBitmap.getWidth();
int height = originalBitmap.getHeight();
Matrix matrix = new Matrix();
matrix.preScale(1, -1);
Bitmap reflectionBitmap = Bitmap.createBitmap(originalBitmap, 0,
height / 2, width, height / 2, matrix, false);
Bitmap withReflectionBitmap = Bitmap.createBitmap(width, (height
+ height / 2 + reflectionGap), Config.ARGB_8888);
Canvas canvas = new Canvas(withReflectionBitmap);
canvas.drawBitmap(originalBitmap, 0, 0, null);
Paint defaultPaint = new Paint();
canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
canvas.drawBitmap(reflectionBitmap, 0, height + reflectionGap, null);
Paint paint = new Paint();
LinearGradient shader = new LinearGradient(0, originalBitmap.getHeight(),
0, withReflectionBitmap.getHeight(), 0x70ffffff, 0x00ffffff,
TileMode.MIRROR);
paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawRect(0, height, width, withReflectionBitmap.getHeight(), paint);
return withReflectionBitmap;
}
}
来源:https://www.cnblogs.com/anemone/p/11452918.html
标签:Java,图片倒影,源码
0
投稿
猜你喜欢
SpringMVC一步到位精通拦截器
2023-11-25 01:47:45
Java实例讲解动态代理
2023-03-21 22:56:45
Java程序员必须知道的5个JVM命令行标志
2023-11-11 15:30:36
Springboot使用redis实现接口Api限流的示例代码
2023-11-29 02:11:05
浅谈Java(SpringBoot)基于zookeeper的分布式锁实现
2023-11-16 08:14:56
解决spring boot启动扫描不到自定义注解的问题
2023-10-29 14:31:48
Mybatis的几种传参方式详解
2021-12-08 15:35:53
详解Spring Cloud Eureka多网卡配置总结
2023-11-09 07:33:15
Java裁剪压缩PNG图片,透明背景色变黑的解决方案
2023-11-25 13:21:27
简单探索 Java 中的惰性计算
2023-11-16 20:25:28
使用JavaWeb webSocket实现简易的点对点聊天功能实例代码
2023-10-29 00:14:17
教你如何监控 Java 线程池运行状态的操作(必看)
2023-02-09 04:34:13
MyBatis框架迭代器模式实现原理解析
2021-08-07 13:56:00
VScode 打造完美java开发环境最新教程
2023-02-24 16:02:10
多线程(多窗口卖票实例讲解)
2021-09-02 02:47:26
Java语言多线程终止中的守护线程实例
2023-11-25 07:48:52
解决SpringBoot中MultipartResolver和ServletFileUpload的冲突问题
2023-10-22 15:28:19
Java实现提取QSV文件视频内容
2023-08-24 13:33:45
Java @Transactional指定回滚条件
2023-11-19 02:47:23
深入分析java并发编程中volatile的实现原理
2023-11-23 05:02:25