如何制作/使用自定义圈?

时间:2012-06-15 00:57:14

标签: android xml layout user-interface android-view

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

如果是简单的圈子,请参阅drawable resource documentation了解详细信息;或者您可以创建自定义drawable(可以在画布上绘制)并将其作为backgroundDrawable提供。

答案 1 :(得分: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。您只需要膨胀视图并在适配器getView()方法中填充文本。