【问题标题】:Custom View with animation,color and border containing inner textview带有动画、颜色和边框的自定义视图,包含内部文本视图
【发布时间】:2015-07-31 03:44:57
【问题描述】:

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

  • 创建自定义视图(我猜这需要画布)
  • 为其指定宽度、高度、位置、颜色、边框、边框颜色等。
  • 从右侧滑动的动画
  • 此自定义视图中的文本视图以显示文本

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

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,但它显示在屏幕的左上角,而不是下图中显示的位置。

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

【问题讨论】:

    标签: android android-canvas android-custom-view


    【解决方案1】:

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

    【讨论】:

    • 如果它是正常的形状,即矩形、圆形等,那就没问题了。但是如何实现多边形呢?
    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多