2010-08-04 16 views

Antwort

2

Mit einem FrameLayout können Sie einen Text über einer Bildansicht platzieren, wobei das Rahmenlayout sowohl eine Bildansicht als auch eine Textansicht enthält.

Wenn das nicht genug ist und man etwas mehr Phantasie will wie Text ‚zeichnen‘, müssen Sie Text auf einer Leinwand zeichnen - eine Probe ist hier: How to draw RTL text (Arabic) onto a Bitmap and have it ordered properly?

66

Um einen Text zu Ihrem ImageView hinzufügen können Sie dies tun :

<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> 
+7

PS .: Muss in einem RelativeLayout sein – Alesqui

+1

besser diese PS in Post enthalten. Es funktioniert nicht ohne PS :) – mente

+2

Dies ist * nicht * empfohlen, da es zusätzliche Layouts erstellt. Verwenden Sie 'TextView' wie in anderen Antworten vorgeschlagen. – Tautvydas

2

Text zu zeichnen direkt auf die folgenden Leinwand tun:

  1. Mitglied Farbe erstellen Objekt in myImageView Konstruktor

    Paint mTextPaint = new Paint(); 
    
  2. Verwenden canvas.drawText in Ihrem myImageView.onDraw() Methode:

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

Entdecken Sie Farbe und Leinwand-Klasse Dokumentation Phantasie Effekte hinzufügen.

+0

Würdest du mir bitte auf die umgekehrte Weise helfen, ich meine, wie man Text von existierendem ImageView (das oben genannt wird) in Android bekommt? – aida

18

Sie können auch eine Textansicht verwenden und das Hintergrundbild so einstellen, wie Sie es wünschen. ImageView. Außerdem, wenn Sie die ImageView als eine Schaltfläche verwenden, können Sie es auf Click-fähig setzen

Hier ist ein Basiscode für eine TextView, die ein Bild mit Text darüber zeigt.

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/your_image" 
    android:text="your text here" /> 
+1

das Problem damit ist, dass Hintergrund nicht skaliert werden kann. –

+0

@IgorGanapolsky: was ?! Es ist auf allen API Levels verfügbar, beginnend mit 1. –

0

Sie das Textview für den gleichen Zweck verwendet werden kann, aber wenn man das gleiche mit dem Image verwenden möchten, dann müssen Sie eine Klasse erstellen, und erstreckt sich der Image dann auf OnDraw() -Methode zu malen den Text verwenden auf die Leinwand. um weitere Informationen zu http://developer.android.com/reference/android/graphics/Canvas.html

1
<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> 
+0

Mach dir keine Sorgen nur Bild-Taste unter FRAME LAYOUT verwenden und ziehen TEXT VIEW auf Bild-Button .Don Wenn Sie diesen Beitrag nützlich, besuchen Sie meine Website www.krsolutions.in und klicken Sie auf wie Schaltfläche auf Unterseite der Website –

16

beste Option besuchen Text und Bild in einer einzigen Ansicht zu verwenden dies versuchen:

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

     android:drawableBottom="@drawable/ic_launcher" 

     android:text="TextView" /> 
10

Verwenden drawalbeLeft/rechts/unten/oben in Textview Bild an dem jeweiligen zu machen Position.

 <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableLeft="@drawable/image"  
     android:text="@strings/text" 
     /> 
+0

Bild wird neben, aber nicht auf der Textansicht sein. –

4

Ich weiß, diese Frage war und ist weg, aber wenn jemand darüber stolperte, wollte ich sie wissen lassen. Dies mag eine nicht intuitive Sache zu tun, aber Sie könnten eine Schaltfläche mit klickbare auf falsch oder was auch immer verwenden. Dies liegt daran, dass eine Schaltfläche es ermöglicht, zusätzlich zu Text auch drawableLeft, drawableRight, drawableTop usw. zu setzen.

<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" /> 

Neue Info: A-Taste können Symbole in drawableLeft, drawableRight, drawableTop und drawableBottom haben.Dies macht einen Standardknopf viel flexibler als einen Bildknopf. Die linke, rechte, obere usw. ist die Beziehung zu dem Text in der Schaltfläche. Sie können mehrere Zeichen auf der Schaltfläche haben, zum Beispiel eine links, eine rechts und den Text in der Mitte.

+0

Was ist Android: DrawableLeft für hier? –

+1

Ich habe oben einige Kommentare hinzugefügt. –

Verwandte Themen