我需要一个圆形对象,如下所示:
名称和计数从数据库中提取信息并显示每个圆圈。 圆圈需要是可点击的,所以我想扩展Button类。
我在onDraw和onMeasure方法中做了什么来创建它?一旦创建,我该如何使用这个类?如何调用此组件以在其他组件视图中显示在我的屏幕中?
编辑:我已经阅读了很多帖子和一些教程,没有一个对“自定义视图”太有帮助答案 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()方法中填充文本。