ImageView
を使用して、派手な方法でメッセージを表示したいと思います。
したがって、このImageView
にテキストを追加します。どうやってするか?
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>
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" />
単一のビューでテキストと画像を使用する最適なオプションは、これを試してください:
<TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:drawableBottom="@drawable/ic_launcher"
Android:text="TextView" />
TextViewでdrawalbeLeft/Right/Bottom/Topを使用して、それぞれの位置に画像をレンダリングします。
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:drawableLeft="@drawable/image"
Android:text="@strings/text"
/>
私はこの疑問が消え去ったことを知っていますが、他の誰かがこれに出くわしたなら、私は彼らに知らせたいと思いました。これは直感的ではないように聞こえるかもしれませんが、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つ、中央にテキストなど、複数のドローアブルをボタンに配置できます。
キャンバスにテキストを直接描画するには、次の手順を実行します。
myImageView
コンストラクターでメンバーPaintオブジェクトを作成します
_Paint mTextPaint = new Paint();
_
myImageView.onDraw()
メソッドで_canvas.drawText
_を使用します。
_canvas.drawText("My fancy text", xpos, ypos, mTextPaint);
_
PaintおよびCanvasクラスのドキュメントを調べて、派手な効果を追加してください。
FrameLayoutを使用すると、imageViewとtextViewの両方を保持するフレームレイアウトの上にテキストを配置できます。
それだけでは不十分で、「描画」テキストのようなもっと派手なものが必要な場合は、キャンバスにテキストを描画する必要があります-サンプルはこちらです: RTLテキスト(アラビア語)をビットマップに描画し、適切に並べる?
<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 をご覧ください。