0

我需要一个圆形对象,如下所示: 圆圈

名称和计数从数据库中提取信息并为每个圆圈显示。圆圈需要可点击,所以我正在考虑扩展 Button 类。

我在 onDraw 和 onMeasure 方法中做什么来创建它?同样一旦创建,我该如何使用这个类?如何调用此组件以与其他组件视图一起显示在我的屏幕中?

编辑:我已经阅读了很多帖子和一些教程,但没有一个对“自定义视图”有太大帮助

4

2 回答 2

0

很可能您不需要自定义视图来完成这项工作。使用带有background圆形的 TextView 就足够了。

如果是简单的圆,详细参考drawable资源文档;或者您可以创建自定义可绘制对象(您可以在画布上绘制)并将其作为 backgroundDrawable 提供。

于 2012-06-15T01:06:39.050 回答
0

您不需要扩展按钮类来执行此操作。

如果我是你,我什至可能不会制作自定义视图,我会使用带有 2 个 TextView 的 LinearLayout。我将线性布局的背景设置为圆形的 png。

像这样的东西就是xml;

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/circle"
android:orientation="vertical"
android:id="@+id/circleLyt">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/nameTxt"
 />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/countTxt"
 />

</LinearLayout>

确保将 circle.png 放入您的drawable文件夹。您可以获得对所有这些视图的引用,findViewById();因此一旦您引用了 TextView,您就可以将文本设置为您需要的任何内容。使用 LinearLayout 参考,您可以在其上设置点击侦听器,其方式与设置 Button 的方式完全相同。

像这样的东西会起作用:

mCircleView = (LinearLayout)findViewById(R.id.circleLyt);
mCircleView.setOnClickListener(new OnClickListener() {
    public void onClick(View v){
        //do some stuff!
    }
}); 

您甚至可以将此布局作为自己的 xml 文件,并使用适配器来填充其他结构,例如GridView。您只需要膨胀视图并在 Adapters getView() 方法中填充文本。

于 2012-06-15T01:08:06.080 回答