public void createReflectedImages() {
int reflectionGap = 4;

Bitmap originalImage = BitmapFactory.decodeResource(getResources(), R.drawable.qq);
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 bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 2 + reflectionGap), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmapWithReflection);

canvas.drawBitmap(originalImage, 0, 0, null);
Paint deafaultPaint = new Paint();
canvas.drawRect(0, height, width, height + reflectionGap, deafaultPaint);
canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);

Paint paint = new Paint();
LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawRect(0, height + reflectionGap, width, bitmapWithReflection.getHeight() + reflectionGap, paint);

imageView.setImageBitmap(bitmapWithReflection);
}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android(安卓)获得当前进程PackageName
  2. Android(安卓)VelocityTracker使用总结
  3. android 获取sd卡根目录
  4. 防止Android点击按钮过快造成多次事件实
  5. 直播源码用Glide框架缓存压缩图片做一个
  6. android Handler内存泄露 kotlin内存泄露
  7. Android点击EditText以外区域隐藏键盘Fra
  8. Android(安卓)全屏显示
  9. android 页面跳转(intent)
  10. Android(安卓)搜索不到蓝牙设备