android-实现视图和绘制的尺寸完全一致

问题描述

实现视图和绘制的尺寸完全一致

在自定义View中的onDraw代码如下。

我要画一个对话气泡,

希望实现视图的尺寸和我画的泡泡是完全一样的。

protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setAntiAlias(true);
        paint.setStrokeWidth(2);
        paint.setStrokeJoin(Paint.Join.ROUND);
        paint.setStrokeCap(Paint.Cap.ROUND);
                paint.setPathEffect(new CornerPathEffect(15) );
        paint.setStyle(Paint.Style.FILL_AND_STROKE);
        paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE, Shader.TileMode.MIRROR));

        Path path = new Path();         

        paint.setShadowLayer(4, 2, 2, 0x80000000);

        path.moveTo(myPath[0].x, myPath[0].y);

        for (int i = 1; i < myPath.length; i++){

                path.lineTo(myPath[i].x, myPath[i].y);
        }
        path.close();
        canvas.drawPath(path, paint);
    }

解决方案

canvas.clipPath(path)
canvas.drawPath(path, paint);
//TODO
canvas.save();
时间: 2024-08-04 13:25:03

android-实现视图和绘制的尺寸完全一致的相关文章

Android自定义视图二:如何绘制内容

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 有的时候自持扩展一个标准的Android视图是不够的.你需要在视图上绘制你自己的内容才行.本文将会讲述如何使用Canvas类来绘制一个折线图,并会讲述如何处理尺寸和padding. 如果你还没

Android自定义视图三:给自定义视图添加“流畅”的动画

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 在第二部分我们实现了一个简单的折线图.这里假设你已经读了前篇.下面我们将继续为这个折线图添砖加瓦. 我在想给这个图的上方添加三个按钮,这样用户可以点选不同的按钮来查看不同类别的数据.比如,用户

Android自定义视图一:扩展现有的视图,添加新的XML属性

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 简介 这个系列详细的介绍了如何穿件Android自定义视图.主要涉及的内容有如何绘制内容,layout和measure的原理,如何继承实现view group以及如何给其子视图添加动画.第一篇

Android自定义视图四:定制onMeasure强制显示为方形

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 上一篇开发之后的效果如上图.不过看着这张图,需要注意的不是我们自定义视图展示了什么,而是这个视图的大小和位置.你会看到这个折线图有一个特定的大小(size).这个size是怎么定的呢?现在的代

Android实现给TableLayou绘制边框的方法_Android

本文实例讲述了Android实现给TableLayou绘制边框的方法.分享给大家供大家参考,具体如下: 效果如下: 思路:使用share作为背景显示边框 步骤: 1.在res/drawable文件夹下建立table_frame_gray.xml文件: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res

Android实现给TableLayou绘制边框的方法

本文实例讲述了Android实现给TableLayou绘制边框的方法.分享给大家供大家参考,具体如下: 效果如下: 思路:使用share作为背景显示边框 步骤: 1.在res/drawable文件夹下建立table_frame_gray.xml文件: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res

Android开发使用Drawable绘制圆角与圆形图案功能示例

本文实例讲述了Android开发使用Drawable绘制圆角与圆形图案功能.分享给大家供大家参考,具体如下: 1. 创建类RoundCircleDrawable继承Drawable /** * 圆角矩形 * @Project App_View * @Package com.android.view.drawable * @author chenlin * @version 1.0 * @Date 2016年4月21日 * @Note TODO */ public class RoundCircl

android View与线程绘制一个小球沿轨迹运动

问题描述 android View与线程绘制一个小球沿轨迹运动 实现绘制一个小球,并运用线程的sleep使小球沿着一个圆运动如何实现 解决方案 先以你小球的位置记录下x,y 然后确定你要小球遇到的圆形的半径,还有圆心位置x1,y1 写个hander,定时post, 然后在handler 处理messge的函数中,做重绘你这个小球view的坐标(x,y). 看你要多久移动多少角度.通过圆心x1, y1 还有当前的小球位置x,y,然后把要移动的角度带进去,算一下这次移动小球新的位置x,y.然后就调用

Android应用如何支持屏幕多尺寸多分辨率问题

    作为Android应用程序开发者都知道android是一个"碎片化"的世界.多种系统版本.多种尺寸.多种分辨率.多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错.这给开发适配带来不小的难度.这篇文章会告诉我们怎么解决这个问题. 1.Android碎片化 1.1.android系统版本 Android更新较大的版本如下:    上面只有当前可用版本,Android L作为开发者版本没有出现其中,未来会有更多的版本.下图给出Android各个版本的占有