我需要一个圆形对象,如下所示:
名称和计数从数据库中提取信息并为每个圆圈显示。圆圈需要可点击,所以我正在考虑扩展 Button 类。
我在 onDraw 和 onMeasure 方法中做什么来创建它?同样一旦创建,我该如何使用这个类?如何调用此组件以与其他组件视图一起显示在我的屏幕中?
编辑:我已经阅读了很多帖子和一些教程,但没有一个对“自定义视图”有太大帮助
我需要一个圆形对象,如下所示:
名称和计数从数据库中提取信息并为每个圆圈显示。圆圈需要可点击,所以我正在考虑扩展 Button 类。
我在 onDraw 和 onMeasure 方法中做什么来创建它?同样一旦创建,我该如何使用这个类?如何调用此组件以与其他组件视图一起显示在我的屏幕中?
编辑:我已经阅读了很多帖子和一些教程,但没有一个对“自定义视图”有太大帮助
很可能您不需要自定义视图来完成这项工作。使用带有background
圆形的 TextView 就足够了。
如果是简单的圆,详细参考drawable资源文档;或者您可以创建自定义可绘制对象(您可以在画布上绘制)并将其作为 backgroundDrawable 提供。
您不需要扩展按钮类来执行此操作。
如果我是你,我什至可能不会制作自定义视图,我会使用带有 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() 方法中填充文本。