android画出图片阴影!!!!!!!!!!!!!!
2012-09-18 15:48
288 查看
android画出图片阴影
void drawAt(Canvas canvas, Drawable drawable, int x, int y, boolean shadow)这个函数是Overlay具有的,当我们要在地图上作标记时候希望有阴影效果,就在draw中使用此函数即可,使shadow为false.下面是此函数的具体实现。protected static void
drawAt(Canvas canvas, Drawable drawable, int x, int y, boolean shadow)
{
...
if (shadow)
drawable.setColorFilter(0x7F000000, PorterDuff.Mode.SRC_IN);
canvas.save();
canvas.translate(x, y);
if (shadow) {
canvas.skew(-0.9F, 0.0F);
canvas.scale(1.0F, 0.5F);
}
drawable.draw(canvas);
if (shadow)
drawable.clearColorFilter();
canvas.restore();
}
@Override protected void
onDraw(Canvas canvas)
{
super.onDraw(canvas);
int nX = 100;
int nY = 50;
_DrawShadowImg(canvas, nX, nY);
_DrawNormalImg(canvas, nX, nY);
}
private void
_DrawNormalImg(Canvas canvas, int nX, int nY)
{
canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.translate(nX, nY);
m_dw.draw(canvas);
canvas.restore();
}
private void
_DrawShadowImg(Canvas canvas, int nX, int nY)
{
canvas.save(Canvas.MATRIX_SAVE_FLAG);
m_dw.setColorFilter(0x7f000000, PorterDuff.Mode.SRC_IN);
canvas.translate(nX, nY);
canvas.skew(-0.9F, 0.0F);
canvas.scale(1.0F, 0.5F);
m_dw.draw(canvas);
m_dw.clearColorFilter();
canvas.restore();
}
_DrawShadowImg() 就是负责绘制阴影效果的函数。
这个函数主要就是运用 matrix与drawable 的 color filter 這两个功能。首先是 m_dw.setColorFilter(),將整个力道睥颜色都转成半透明的黑色。接着canvas.translate()将卒标第原点移到nX, nY 的位置,而 canvas.skew() 与 canvas.scale()则是将卒标系做个经轴方向的倾斜与y轴方向的大小压缩,最后,调用m_dw.draw() 把图片画出来,阴影效果实现。
from: http://hi.baidu.com/ktscrdjuhcgltuf/item/9a605fbe33a17bf162388ed4
相关文章推荐
- android ListView常见问题解决方法(滚动背景变黑,去除滑动时阴影,拖动时Item图片不显示)
- Android实现图片阴影效果的方法
- Android图片添加阴影效果的两种方式
- Android实现图片阴影效果
- Android图片添加阴影效果的两种方式
- Android 自定义阴影进度实现仿QQ图片上传
- Android实现图片添加阴影效果的2种方法
- Android 给图片、文字、控件、布局添加阴影效果(悬浮效果)
- android图片添加右边阴影
- Android 圆形图片加白边加阴影
- Android自定义图片圆角,增加渐变阴影
- Android图片添加阴影效果的两种方式
- Android 图片阴影处理分析!
- Android:自定义imageview实现两条线裁剪图片,不在区域内显示阴影
- Android TextView 显示文字阴影效果
- Android 将拼接好并加上边框的图片保存到内存卡中
- android给view比如layout等添加阴影效果
- 【Android】【Drawable】图片圆形化(RoundedBitmapDrawable)
- android添加图片到本地,无法即使刷新的解决方法
- 用心学Android之Bitmap缓存编,可为ListView等控件提供异步加载图片解决方案