web-dev-qa-db-ja.com

AndroidでImageViewにテキストを追加する

ImageViewを使用して、派手な方法でメッセージを表示したいと思います。

したがって、このImageViewにテキストを追加します。どうやってするか?

44
Shashi

ImageViewにテキストを追加するには、次のようにします:

<RelativeLayout> // Only works inside a RelativeLayout
    <ImageView
        Android:id="@+id/myImageView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:src="@drawable/myImageSouce" />

    <TextView
        Android:id="@+id/myImageViewText"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/myImageView"
        Android:layout_alignTop="@+id/myImageView"
        Android:layout_alignRight="@+id/myImageView"
        Android:layout_alignBottom="@+id/myImageView"
        Android:layout_margin="1dp"
        Android:gravity="center"
        Android:text="Hello"
        Android:textColor="#000000" />
 </RelativeLayout>
82
Alesqui

TextViewを使用して、背景画像をImageViewで必要なものに設定することもできます。さらに、ImageViewをボタンとして使用している場合は、クリック可能に設定できます

以下は、画像の上にテキストを表示するTextViewの基本的なコードです。

<TextView
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:background="@drawable/your_image"
    Android:text="your text here" />
26
Barrie Galitzky

単一のビューでテキストと画像を使用する最適なオプションは、これを試してください:

<TextView
        Android:id="@+id/textView1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"

        Android:drawableBottom="@drawable/ic_launcher"

        Android:text="TextView" />
20
Sagar V.

TextViewでdrawalbeLeft/Right/Bottom/Topを使用して、それぞれの位置に画像をレンダリングします。

        <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:drawableLeft="@drawable/image"    
        Android:text="@strings/text" 
        />
13

私はこの疑問が消え去ったことを知っていますが、他の誰かがこれに出くわしたなら、私は彼らに知らせたいと思いました。これは直感的ではないように聞こえるかもしれませんが、clickableがfalseに設定されたボタンを使用できます。これは、ボタンを使用すると、テキストに加えてdrawableLeft、drawableRight、drawableTopなどを設定できるためです。

  <Button
  Android:id="@+id/button1"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  Android:background="@drawable/border_box1"
  Android:drawableLeft="@drawable/ar9_but_desc"
  Android:padding="20dp"
  Android:text="@string/ar4_button1"
  Android:textColor="@color/white"
  Android:textSize="24sp" />

新しい情報:ボタンには、drawableLeft、drawableRight、drawableTop、drawableBottomのアイコンを含めることができます。これにより、標準ボタンは画像ボタンよりもはるかに柔軟になります。左、右、上などは、ボタン内のテキストとの関係です。たとえば、左に1つ、右に1つ、中央にテキストなど、複数のドローアブルをボタンに配置できます。

7
Andrew S

キャンバスにテキストを直接描画するには、次の手順を実行します。

  1. myImageViewコンストラクターでメンバーPaintオブジェクトを作成します

    _Paint mTextPaint = new Paint();
    _
  2. myImageView.onDraw()メソッドで_canvas.drawText_を使用します。

    _canvas.drawText("My fancy text", xpos, ypos, mTextPaint);
    _

PaintおよびCanvasクラスのドキュメントを調べて、派手な効果を追加してください。

3
Peter

FrameLayoutを使用すると、imageViewとtextViewの両方を保持するフレームレイアウトの上にテキストを配置できます。

それだけでは不十分で、「描画」テキストのようなもっと派手なものが必要な場合は、キャンバスにテキストを描画する必要があります-サンプルはこちらです: RTLテキスト(アラビア語)をビットマップに描画し、適切に並べる?

3
Mathias Conradt
    <FrameLayout
        Android:layout_width="wrap_content"
        Android:layout_height="match_parent"
        Android:layout_gravity="center_horizontal"
        Android:layout_weight="30" >

        <ImageButton
            Android:id="@+id/imgbtnUploadPendingPods"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:contentDescription="@string/hello_world"
            Android:src="@drawable/upload_icon" />

        <TextView
            Android:id="@+id/textView1"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:gravity="center_horizontal"
            Android:paddingTop="30dp"
            Android:text="@string/pendingpods"
            Android:textAppearance="?android:attr/textAppearanceSmall" />
    </FrameLayout>

TextViewを同じ目的で使用できますが、ImageViewでTextViewを使用する場合は、クラスを作成してImageViewを拡張し、onDraw()メソッドを使用してテキストをキャンバスにペイントする必要があります。詳細については、 http://developer.Android.com/reference/Android/graphics/Canvas.html をご覧ください。

1
jitain sharma