私のアンドロイドアプリケーションでは、マップのように機能するカスタムビューがあります。ユーザーが特定の場所に触れると、一種の情報バブルでより多くの情報を表示できるようにしたいと考えています。これは、Googleマップのapiの仕組みと非常によく似ていますが、APIを使用したくありません。マップ(GoogleのAPIではなく)に情報バブルを作成する方法
これまでのところ、キャンバスに直接丸みのある四角形を描画し、指定した位置の上にテキストを描画しようとしました。しかし、これにはかなりの欠点があります:
1)テキストの長さと大きさに対する矩形の大きさを計算する方法はわかりません。
2)四角形を描画するonTouchイベントが組み込まれて(ビューのパワーのための余地を残さない、と簡単にビューをカスタマイズする余地)
私はまた、情報を表示するビュー(ボタン)を使用して試してみました成功しなかった。私が知る限り、ビューを表示する座標を指定することはできません(情報のバブルはマップのスクロール位置に従って移動する必要があるため)。
要約すると、表示されるテキストの量に応じてイメージのサイズを簡単に変更する必要があり、マップがスクロールされる場所に応じて情報バブルが画面上を移動できるようにする必要があります。
GoogleマップのAPIを使用せずに、このような情報のバブルを作成するのに最適な方法は何ですか?
ありがとうございます、あなたのソリューションは動作します。ここでは、テキストに基づいてサイズ変更された画像を描画するために使用したコードを示します。 int padding = 10; bmpLength = textPaint.measureText((String)this.getText()); bmpHeight = textPaint.getFontSpacing(); (x + bmpLength +(パディング* 4))、(int)(y + bmpHeight + 2 *パディング))、mPaint);canvas.drawBitmap(mImage、null、new Rect(x、y、(int)canvas.drawText((String)this.getText()、x +(パディング* 2)、(float)(y +(bmpHeight/2)+ 1.5 *パディング)、textPaint); – James