我将首先解释我试图实现的目标,然后再解释我目前解决该问题的方法。我感谢任何有用的输入,即使这意味着从头开始。如果需要,我会添加更多代码或解释。
这将是一个更大的Android应用程序的一部分。此部件应在一个可滚动的视图/布局中显示先前选择的网络中的所有节点以及节点之间的关系。节点之间的关系应该用箭头表示,显示每个节点在特定时间间隔内可以“听到”哪些节点。遗憾的是,节点必须是可点击的,因为您必须能够在该视图中为应用程序的其他部分设置一些选项。实际的数据(节点、邻居关系)最终应该通过webservice从数据库返回,但除了节点数量不是静态的这一事实之外,这还不是完全相关的。
我目前的方法是创建一个自定义ButtonAdapter来填充它,这样我就可以使用非静态数量的自定义(透明)按钮。
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ButtonAdapter(this));我已经创建了可以在位图上绘制箭头的方法,我还可以通过将其转换为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中创建的,所以在这一点上我没有得到实际的大小。有没有解决这个问题的办法?
即使这可以工作,我还不确定我是否可以设置背景的方式,它将滚动1:1的GridView,而不是缩放。
发布于 2012-08-29 18:35:29
解决了利用自定义线程和每个按钮的额外类的自定义SurfaceView,这些按钮只是简单地绘制在一起,它们之间的线在表面上。滚动也必须单独实现。
https://stackoverflow.com/questions/11225735
复制相似问题