最初に何を達成しようとしているのかを説明し、後でそれを解決するための現在のアプローチを説明します。ゼロから始めることを意味する場合でも、有用な入力に感謝します。必要に応じて、さらにコードや説明を追加します。
これは、より大きな Android アプリケーションの一部になる予定です。この部分では、以前に選択したネットワーク内のすべてのノードと、ノード間の関係をすべて 1 つのスクロール可能なビュー/レイアウトに表示する必要があります。関係はノード間の矢印で示され、各ノードが特定の間隔でどのノードを「聞く」ことができるかを示します。残念ながら、ノードはクリック可能でなければなりません。なぜなら、そのビュー内でアプリの他の部分にいくつかのオプションを設定できるようにする必要があるからです。実際のデータ (ノード、近隣関係) は最終的にデータベースから Web サービスを介して返される必要がありますが、ノードの量が静的ではないという事実を除けば、これはまだ完全には関係ありません。
これに対する私の現在のアプローチは、カスタム ButtonAdapter で塗りつぶす GridView を作成することです。これにより、非静的な量のカスタム (透明) ボタンを使用できます。
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 内で作成するため、現時点では実際のサイズは取得できません。この問題の解決策はありますか?
そして、それが機能したとしても、スケーリングするのではなく、GridView で 1:1 にスクロールするように背景を設定できるかどうかはまだわかりません。