0

我将首先解释我想要实现的目标,然后再解释我目前解决它的方法。我感谢任何有用的输入,即使这意味着从头开始。如果需要,我会添加更多代码或解释。

这将成为更大的 Android 应用程序的一部分。这部分应该在一个可滚动的视图/布局中显示先前选择的网络中的所有节点以及节点之间的关系。这些关系应该用节点之间的箭头来描绘,显示每个节点在特定时间间隔内可以“听到”哪些节点。遗憾的是,节点必须是可点击的,因为您必须已经能够在该视图中为应用程序的其他部分设置一些选项。实际数据(节点、邻域关系)最终应该通过 Web 服务从数据库返回,但除了节点数量不是静态的事实之外,这还不是完全相关的。

我目前的方法是创建 GridView 用自定义 ButtonAdapter 填充它,这样我就可以使用非静态数量的自定义(透明)按钮。

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ButtonAdapter(this));

我已经创建了可以在 Bitmap 上绘制箭头的方法,并且我还可以通过将其转换为 Drawable 来轻松地将其设置为 GridView 的背景。

protected Bitmap drawArrow(float startX, float startY, float endX, float endY, Bitmap bitmap) {
....
}

Drawable d = new BitmapDrawable(bitmap);
gridview.setBackgroundDrawable(d);

我对这种方法的问题是,我需要知道 GridView 的位图的确切大小和按钮的位置,或者总高度和宽度,即 1 个按钮将使用。由于在 onCreate 中创建它,但此时我没有得到实际尺寸。这个问题有解决方案吗?

即使这样可行,我也不确定是否可以将背景设置为与 GridView 以 1:1 滚动而不是缩放的方式。

4

1 回答 1

0

解决了SurfaceView使用自定义线程和每个按钮的额外类的自定义问题,这些按钮在表面上简单地与它们之间的线一起绘制。滚动也必须单独实现。

于 2012-08-29T10:35:29.023 回答