0

ユーザーが画像に入力した値を表示しようとしています。画像には4つのバージョン(ldpi、mdpi、hdpi、xhdpi)があります。textViewsを、適切な画面サイズに調整される「固定」の場所に配置したいと思います。

誰かが私がこれを達成する方法についていくつかのアドバイスを持っていますか?

これが私がやろうとしていることのスケッチです。

http://dl.dropbox.com/u/251053/stackoverflow.png

編集

迅速な対応に感謝します。新しい画像をアップロードしましたが、これは相対的なレイアウトでは不可能だと思いますか?

http://dl.dropbox.com/u/251053/stackoverflow1.png

4

3 に答える 3

1

「RelativeLayout」のドキュメントをご覧ください:http://developer.android.com/reference/android/widget/RelativeLayout.html

あなたはあなたのImageViewの周りにあなたのtextViewを置くことができるでしょう。

于 2012-05-21T15:17:11.217 に答える
0

これを解決する最善の方法は、ImageViewを最初の子として期待するカスタムレイアウトを作成することだと思います。

他のすべての子は、次のいずれかを実行できるTextViewになります。

  • ImageViewの位置に対する相対的な位置
  • ImageViewの高さ/幅に一致する親カスタムレイアウトの高さ/幅に比例した位置

子TextViewの左上/上部の位置情報は、ニーズに合ったカスタムLayoutParamsクラスを介して提供できます。

于 2012-05-21T20:55:00.120 に答える
0

Viewクラスを拡張してカスタムビューを作成するのが最善の方法だと思います。見た目ほど複雑ではありません。ここでは、カスタムUIコンポーネントに関する詳細情報を見つけることができます。

主なアイデアは、onDraw(Canvas canvas)メソッドとonMeasure(int widthMeasureSpec、int heightMeasureSpec)メソッドをオーバーライドすることです。onMeasureでは、ビューの寸法を返す必要があります。また、長方形のサイズと角度、および描画するテキストのサイズを計算することもできます。または、アクティビティから表示してテキストと画像の計算を行うときに明示的に呼び出されるカスタムのresize()メソッドを実装することもできます。

すべての測定値がわかったら、onDraw(Canvasキャンバス)メソッドで画像とテキストの両方を配置して描画できます。

@Override
    protected void onDraw(Canvas canvas) {

    myImageDrawable.setBounds(0,0,50,50);
    myImageDrawable.draw(canvas);

    canvas.drawText(myText, 10, 10, myTextPaint);
}

Canvasクラスの詳細については、こちらをご覧ください。また、StaticLayoutを使用してテキストを測定することもできます。

于 2012-05-22T11:52:59.493 に答える