Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中创建自定义视图_Android_Android Custom View - Fatal编程技术网

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

如何在android中创建自定义视图,android,android-custom-view,Android,Android Custom View,我想学习如何创建自定义视图。我已经通过了多个教程,并没有得到我想要的(我的意思是概念) 我所学到的 我分享我的想法,如果我错了,请纠正我 如果要对标准视图进行微小更改,请继承其自身(例如扩展seekbar)并对其进行自定义 但是如果您想创建困难的或多功能的视图,我们应该继承view类 当我们继承一个视图时 需要两种方法 onDraw(Canvas Canvas)//每次调用它时,也可以使用invalidate调用它 onMeasure//它测量实际的宽度和大小,并相应地设置我们的视图 无论您想在

我想学习如何创建自定义视图。我已经通过了多个教程,并没有得到我想要的(我的意思是概念)

我所学到的

我分享我的想法,如果我错了,请纠正我

如果要对标准视图进行微小更改,请继承其自身(例如扩展seekbar)并对其进行自定义

但是如果您想创建困难的或多功能的视图,我们应该继承
view类

当我们继承一个视图时

需要两种方法

  • onDraw(Canvas Canvas)//每次调用它时,也可以使用invalidate调用它
  • onMeasure//它测量实际的宽度和大小,并相应地设置我们的视图
  • 无论您想在视图上绘制什么,都可以使用画布来完成;(我说得对吗)

    要定义其他属性,请在res/values文件夹中创建attrs.xml文件。并添加
    和属性

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

    我的困惑

  • 我们可以不用画布画东西吗
  • 我们可以在不转换为位图的情况下绘制ImageView吗
  • 我只是想创建一个自定义的imageView,它可以像 一个dialView,但它应该旋转半圈(半圆),并且还希望 把它的进步引向外部。使用canvas.drawArc()
  • 我想要实现的目标

    我想创建我自己的自定义旋钮,我已经搜索了我们的谷歌,但没有找到我想要的,请看我的问题

    提前感谢….

    1)您可以使用openGL。否则你需要一块画布。画布定义了您要绘制的位置,没有它(或openGL等价物),我们不知道要绘制到哪里。您可能不希望直接绘制到屏幕,在许多情况下,绘制到位图是很常见的

    2) 你的问题没有多大意义。为什么要绘制ImageView,而不是让它自己绘制


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

    可能会对您有所帮助。您看到我想实现的另外两个问题了吗