packagecom.img.util;
importandroid.graphics.Bitmap;
importandroid.graphics.Bitmap.Config;
importandroid.graphics.Canvas;
importandroid.graphics.LinearGradient;
importandroid.graphics.Matrix;
importandroid.graphics.Paint;
importandroid.graphics.PixelFormat;
importandroid.graphics.PorterDuff.Mode;
importandroid.graphics.PorterDuffXfermode;
importandroid.graphics.Rect;
importandroid.graphics.RectF;
importandroid.graphics.Shader.TileMode;
importandroid.graphics.drawable.Drawable;
publicclassImgUtil{
//放大缩小图片
publicstaticBitmapzoomBitmap(Bitmapbitmap,intw,inth){
intwidth=bitmap.getWidth();
intheight=bitmap.getHeight();
Matrixmatrix=newMatrix();
floatscaleWidth=((float)w/width);
floatscaleHeight=((float)h/height);
matrix.postScale(scaleWidth,scaleHeight);
BitmapnewBmp=Bitmap.createBitmap(bitmap,0,0,width,height,
matrix,true);
returnnewBmp;
}
//将Drawable转化为Bitmap
publicstaticBitmapdrawableToBitmap(Drawabledrawable){
intwidth=drawable.getIntrinsicWidth();
intheight=drawable.getIntrinsicHeight();
Bitmapbitmap=Bitmap.createBitmap(width,height,drawable
.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888
:Bitmap.Config.RGB_565);
Canvascanvas=newCanvas(bitmap);
drawable.setBounds(0,0,width,height);
drawable.draw(canvas);
returnbitmap;
}
//圆角图片
publicstaticBitmapgetRoundedCornerBitmap(Bitmapbitmap,floatroundPx){
Bitmapoutput=Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(),Config.ARGB_8888);
Canvascanvas=newCanvas(output);
finalintcolor=0xff424242;
finalPaintpaint=newPaint();
finalRectrect=newRect(0,0,bitmap.getWidth(),bitmap.getHeight());
finalRectFrectF=newRectF(rect);
paint.setAntiAlias(true);
canvas.drawARGB(0,0,0,0);
paint.setColor(color);
canvas.drawRoundRect(rectF,roundPx,roundPx,paint);
paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap,rect,rect,paint);
returnoutput;
}
//获得带倒影的图片方法
publicstaticBitmapcreateReflectionImageWithOrigin(Bitmapbitmap){
finalintreflectionGap=4;
intwidth=bitmap.getWidth();
intheight=bitmap.getHeight();
Matrixmatrix=newMatrix();
matrix.preScale(1,-1);
BitmapreflectionImage=Bitmap.createBitmap(bitmap,0,height/2,
width,height/2,matrix,false);
BitmapbitmapWithReflection=Bitmap.createBitmap(width,
(height+height/2),Config.ARGB_8888);
Canvascanvas=newCanvas(bitmapWithReflection);
canvas.drawBitmap(bitmap,0,0,null);
PaintdeafalutPaint=newPaint();
canvas.drawRect(0,height,width,height+reflectionGap,deafalutPaint);
canvas.drawBitmap(reflectionImage,0,height+reflectionGap,null);
Paintpaint=newPaint();
LinearGradientshader=newLinearGradient(0,bitmap.getHeight(),0,
bitmapWithReflection.getHeight()+reflectionGap,0x70ffffff,
0x00ffffff,TileMode.CLAMP);
paint.setShader(shader);
//SettheTransfermodetobeporterduffanddestinationin
paint.setXfermode(newPorterDuffXfermode(Mode.DST_IN));
//Drawarectangleusingthepaintwithourlineargradient
canvas.drawRect(0,height,width,bitmapWithReflection.getHeight()
+reflectionGap,paint);
returnbitmapWithReflection;
}
}
packagecom.img.util;
importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.graphics.drawable.Drawable;
importandroid.os.Bundle;
importandroid.widget.ImageView;
publicclassMainActivityextendsActivity{
privateImageViewmImageView01,mImageView02;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
privatevoidsetupViews(){
mImageView01=(ImageView)findViewById(R.id.image01);
mImageView02=(ImageView)findViewById(R.id.image02);
//获取壁纸返回值是Drawable
Drawabledrawable=getWallpaper();
//将Drawable转化为Bitmap
Bitmapbitmap=ImgUtil.drawableToBitmap(drawable);
//缩放图片
BitmapzoomBitmap=ImgUtil.zoomBitmap(bitmap,100,100);
//获取圆角图片
BitmaproundBitmap=ImgUtil
.getRoundedCornerBitmap(zoomBitmap,10.0f);
//获取倒影图片
BitmapreflectBitmap=ImgUtil
.createReflectionImageWithOrigin(zoomBitmap);
//这里可以让Bitmap再转化为Drawable
//DrawableroundDrawable=newBitmapDrawable(roundBitmap);
//DrawablereflectDrawable=newBitmapDrawable(reflectBitmap);
//mImageView01.setBackgroundDrawable(roundDrawable);
//mImageView02.setBackgroundDrawable(reflectDrawable);
mImageView01.setImageBitmap(roundBitmap);
mImageView02.setImageBitmap(reflectBitmap);
}
}
相关推荐
Android绘图机制与处理技巧(三)——Android图像处理之图形特效处理
android图片处理方法,有图片处理用到得技巧
Android对于图片处理,最常使用到的数据结构是位图——Bitmap,它包含了一张图片所有的数据。整个图片都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。而颜色值——...
Android中有很多图片特效处理技巧,比如圆角、倒影,今天为大家分享一个实例,本例主要是先获取壁纸(getWallpaper()),然后对当前壁纸的一些特效处理。
除了常用的画笔属性,比如普通的画笔(Paint),带边框、填充的style,颜色(Color),宽度(StrokeWidth),抗锯齿(ANTI_ALIAS_FLAG)等,Android还提供了各种各样专业的画笔工具,如记号笔、毛笔、蜡笔等,使用它们可以...
Android中几种图像特效处理方法,是Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等.
主要介绍了Android图片处理的方法,结合实例形式分析了Android针对图片的加载、分割、缩放、绘制等操作技巧,需要的朋友可以参考下
用在你的android APP中,可美化图片,让图片的显示更漂亮。这个例子主要是让大家熟悉imageView控件的用法技巧,除了可以实现圆形图片、圆角图片、为图片增加各种颜色大小的边框外,还有很多功能,敬请下载源码。
关于android上matrix的使用,可以开发者更好地掌握android上的图片处理技巧
Android中利用画图类和线程画出闪烁的心形,送给亲爱的他 android自带的示例程序 BluetoothChat 变蓝牙串口助手(内含DIY蓝牙遥控车附源码实例教程) Android高手过招 FAQ 网友收集的android开发书籍(可下载哦)...
小菜上周接入了微信分享小程序的入口,基本功能实现都没问题,有需要的朋友可以了解一下 Android 分享微信小程序失败二三事,虽然功能都正常,但整体测试发现图片展示效果不佳。于是小菜整理了一个简单的小方法处理...
大家好,这一节给大家分享的是Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等. 废话少说了,直接讲解今天的实例,本例主要是先获取壁纸...
主要介绍了Android编程中图片特效处理方法,实例总结了Android实现图片的转换、缩放、圆角及倒影等效果的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了Android编程之图片颜色处理方法,涉及Android针对图片的颜色值、饱和度、透明度等处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下
生命周期详解,布局详解,图片处理详解,内存优化详解。等等
Android手机上的新浪微博客户端程序Java源码下载,可了解到android中的域名获取等操作,http操作,发微博的作者操作,sqlite操作和微博浏览显示操作,包括了界面到数据库和网络较综合的操作技巧。包括使用sqlite创建...
每一张图片都可以显示图片描述,其实和微信朋友圈的图片显示方式并不一样哦,这个可以学习一下Android如何读取系统相册,如何改变图片浏览视图,学习一下Android环境下一些基础的图库操作技巧。
主要介绍了Android编程实现图片的颜色处理功能,涉及Android拖动条的使用及图形颜色处理相关操作技巧,需要的朋友可以参考下