如何在android中创建自定义视图

时间:2015-01-01 06:57:24

标签: android android-custom-view

我想了解如何创建自定义视图。我已经完成了多个教程,并没有得到我想要的东西(我的意思是概念)。

我学到了什么

我正在分享我的观念,如果我错了,请纠正我。

如果您想对标准视图进行微小更改,则继承自身(例如扩展搜索栏)并自定义它。

但是如果你想制作困难或多功能的视图,我们应该继承View Class

当我们继承View。

需要两种方法

  1. onDraw(Canvas canvas)//每次都调用它,也可以使用invalidate调用。
  2. onMeasure //它测量实际的宽度和大小并相应地设置我们的视图
  3. 无论你想在View上绘制什么,都可以使用canvas完成;(我是对的)。

    要定义其他属性,请在res / values文件夹中创建attrs.xml文件。并添加<declare-styleable name="YourCustomView">并向其添加属性。

    使用TypedArray调用recyle方法在View的构造函数中获取这些属性。

    我的困惑

    1. 我们可以在不使用Canvas的情况下绘制内容吗
    2. 我们可以在不将其转换为位图的情况下绘制ImageView。
    3. 我只是想创建一个可以旋转的自定义imageView 一个dialView但它应该旋转一半(半圆),也想 在它之外吸取进步。使用canvas.drawArc()
    4. 我想要实现的目标

      我想创建自己的自定义旋钮,我搜索了谷歌,但没有找到我想要的东西在这里看到我的问题

      First Question

      Second Question

      提前致谢....

1 个答案:

答案 0 :(得分:0)

1)您可以使用openGL。否则你需要一个画布。画布定义了您要绘制的位置,没有它(或等效的openGL),我们不知道在哪里绘制。您可能不想直接绘制到屏幕上,在很多情况下通常会绘制到位图。

2)你的问题没有多大意义。除了让它自己绘制之外,你为什么要绘制一个ImageView?

3)最简单的方法是使用普通的图像视图并调用setRotation根据需要旋转它。