带有动画、颜色和边框的自定义视图包含内部文本视图

Custom View with animation,color and border containing inner textview

参考下图,我希望带有黄色背景和右边框的视图从右侧滑入一些文本。所以这个要求包括:

我参考了 this 教程以了解如何在布局中包含带有 canvas 的视图。但是我尝试了以下而不是硬编码点位置:

public MyView(Context context) {
    super(context);
        WindowManager wm = (WindowManager) DashBoardActivity.mContext
                .getSystemService(Context.WINDOW_SERVICE);
        Display display = wm.getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        width = size.x;
        height = size.y;

        width -= 10;
        height -= 50;
        myPath = new Pt[6];
        myPath[0] = new Pt(width, height);
        myPath[1] = new Pt(width - 400, height);
        myPath[2] = new Pt(width - 500, height - 100);
        myPath[3] = new Pt(width - 400, height - 200);
        myPath[4] = new Pt(width, height - 200);
        myPath[5] = new Pt(width, height);
}

但是视图没有按照预期定位。我尝试了不同的硬编码位置,但要么显示在错误的位置,要么根本不显示。

此外,为了显示文本,我在布局本身中添加了 textview,但它显示在屏幕的左上角,而不是下图所示的位置。

我怎样才能做到这一点?任何建议表示赞赏。

您不需要任何自定义视图,您可以将形状或 9patch 图像设置为文本视图的背景,并使用对象动画器为该文本视图设置动画。 Border in shape xml