Java实现图片倒影代码
发布时间:2020-12-14 23:23:40 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /*实现图片倒影(tested)*/public class ButtonImageActivity extends Activity { /** Called when the activity is first created. */ private ImageV
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 /*实现图片倒影(tested)*/ public class ButtonImageActivity extends Activity { /** Called when the activity is first created. */ 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) { // TODO Auto-generated method stub } }); } private Bitmap createReflectedImage(Bitmap originalBitmap) { // 图片与倒影间隔距离 final int reflectionGap = 4; // 图片的宽度 int width = originalBitmap.getWidth(); // 图片的高度 int height = originalBitmap.getHeight(); Matrix matrix = new Matrix(); // 图片缩放,x轴变为原来的1倍,y轴为-1倍,实现图片的反转 matrix.preScale(1,-1); // 创建反转后的图片Bitmap对象,图片高是原图的一半。 Bitmap reflectionBitmap = Bitmap.createBitmap(originalBitmap,height / 2,width,matrix,false); // 创建标准的Bitmap对象,宽和原图一致,高是原图的1.5倍。 Bitmap withReflectionBitmap = Bitmap.createBitmap(width,(height + height / 2 + reflectionGap),Config.ARGB_8888); // 构造函数传入Bitmap对象,为了在图片上画图 Canvas canvas = new Canvas(withReflectionBitmap); // 画原始图片 canvas.drawBitmap(originalBitmap,null); // 画间隔矩形 Paint defaultPaint = new Paint(); canvas.drawRect(0,height,height + reflectionGap,defaultPaint); // 画倒影图片 canvas.drawBitmap(reflectionBitmap,null); // 实现倒影效果 Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0,originalBitmap.getHeight(),withReflectionBitmap.getHeight(),0x70ffffff,0x00ffffff,TileMode.MIRROR); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); // 覆盖效果 canvas.drawRect(0,paint); return withReflectionBitmap; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |