【问题标题】:How to create a custom view in android如何在android中创建自定义视图
【发布时间】:2015-01-01 06:57:24
【问题描述】:

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

我学到了什么

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

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

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

当我们继承一个视图时。

需要两种方法

  1. onDraw(Canvas canvas) // 每次调用,也可以使用invalidate调用。
  2. onMeasure // 它测量实际宽度和大小并相应地设置我们的视图

您想在 View 上绘制的任何内容都可以使用画布完成;(我是对的)。

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

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

我的困惑

  1. 我们可以在不使用 Canvas 的情况下绘制一些东西吗
  2. 我们可以在不将其转换为位图的情况下绘制 ImageView。
  3. 我只是想创建一个可以像这样旋转的自定义 imageView 一个 dialView 但它应该旋转一半(半圆)并且还想要 在它之外画出它的进步。使用 canvas.drawArc()

我想要达到的目标

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

First Question

Second Question

在此先感谢....

【问题讨论】:

  • This 可能会对您有所帮助。

标签: android android-custom-view


【解决方案1】:

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

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

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

【讨论】:

  • 你有没有看到我的另外两个问题我想要实现的目标
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 2014-12-04
  • 2012-07-25
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
相关资源
最近更新 更多