android 图片气泡,关于实现微信聊天气泡里显示图片解决方案

关于实现微信聊天气泡里显示图片

21331153.png

这是微信的效果,气泡中的图片没有边距

21331154.png

这是我的效果,背景气泡是用.9.png图片组成的一个selector,气泡中的图片有边距  如何才能像微信那样没有边矩呢?

------解决思路----------------------

可以用Bitmap画刷填充Path来实现

/**

* Created by Coder.Yan on 2015/5/21.

*/

@SuppressWarnings("deprecation")

public class XORView extends View {

Paint paint;

Path path;

BitmapShader brush;

public XORView(Context context, AttributeSet attrs) {

super(context, attrs);

paint = new Paint();

path = new Path();

BitmapDrawable drawable = (BitmapDrawable)getResources().getDrawable(R.drawable.ic_texture);

brush = new BitmapShader(drawable.getBitmap(), Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

canvas.save();

paint.setStyle(Paint.Style.FILL);

//paint.setColor(Color.GREEN);

paint.setShader(brush);

canvas.drawPath(path, paint);

paint.reset();

paint.setStyle(Paint.Style.STROKE);

canvas.drawPath(path, paint);

canvas.restore();

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

path.reset();

int w = getWidth();

int h = getHeight();

path.moveTo(0,10);

path.arcTo(new RectF(0,0,20,20),180,90);

path.lineTo(w - 30,0);

path.arcTo(new RectF(w - 40, 0, w - 20, 20), -90, 90);

path.lineTo(w-20,h/2 -10);

path.lineTo(w,h/2);

path.lineTo(w-20,h/2 +10);

path.lineTo(w-20,h - 10);

path.arcTo(new RectF(w-40, h-20,w-20,h-1),0,90);

path.lineTo(10,h-1);

path.arcTo(new RectF(0,h-20,20,h-1),90,90);

path.close();

}

}

效果图

21331155.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值