2013-11-09 8 views
11

Ich versuche Textviews über Bildansichten Overlay haben. So etwas wie diesesText-Overlay über Bildansicht in Android

people app

Kann mir jemand mit dem Code helfen.

+0

Haben Sie die gridview haben Konfiguration? – kabuto178

+0

Nein, aber ich denke, ich kann das verwalten –

+2

Dann könnten Sie ein benutzerdefiniertes XML mit frameLayout oder relativeLayout erstellen und eine Textansicht über eine Bildansicht positionieren und es in Ihrem Gridview-Adapter aufblasen – kabuto178

Antwort

4

Ich hatte das gleiche Problem und löste es eine benutzerdefinierte Gridview verwenden. Sie müssen dies in getView anwenden.

Benutzerdefinierte Gridview XML:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout_practitioner" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/item_image" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="centerCrop" 
     android:contentDescription="@string/contentDescriptionContent" 
    /> 

    <LinearLayout 
     android:id="@+id/layout_login" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:layout_gravity="center" 
     android:background="#CC515116" 
     android:visibility="gone" 
     android:gravity="center" > 

      <TextView    
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="@android:color/white" 
       android:text="@string/text_enter_pass_password" 
       android:paddingBottom="7dp" 
       android:textSize="20sp" 
      /> 

      <EditText 
       android:id="@+id/edit_practitioner_pin" 
       android:layout_width="wrap_content" 
       android:layout_height="40dp" 
       android:layout_gravity="center" 
       android:background="@drawable/edittext_shape" 
       android:ems="6" 
       android:gravity="center" 
       android:inputType="numberPassword" 
       android:maxLength="4" 
       android:layout_marginBottom="10dp" 
       android:layout_marginTop="10dp" 
       android:visibility="visible" 
      />    

      <Button 
       android:id="@+id/pract_button" 
       android:layout_width="70dp" 
       android:layout_height="30dp" 
       android:background="@drawable/buton_shape" 
       android:layout_marginBottom="35dp" 
       android:text="@string/btn_ok" 
      /> 
    </LinearLayout> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_gravity="bottom" 
    android:background="#bbffffff" 
    android:focusable="false" 
    android:focusableInTouchMode="false" > 

    <TextView android:id="@+id/item_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="3dp" 
     android:textColor="@color/text_black"  
     android:gravity="bottom|center" 
     android:textSize="20sp" 
     android:textAllCaps="true" 
     android:paddingBottom="0dp" 
     /> 

    <TextView 
     android:id="@+id/text_pratiotioner_group_name" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:textColor="@color/sub_title_color" 
     android:visibility="visible" 
     android:gravity="bottom|center" 
     android:textAllCaps="true" 
    /> 

</LinearLayout> 

</FrameLayout> 
7

Umschließen Sie TextView und ImageView in FrameLayout, fügen Sie die TextView in FrameLayout nach ImageView ein. Wickeln Sie dann das FrameLayout in RelativeLayout OR LinearLayout. Nehmen Sie eine Positionseinstellung vor (je nach Bedarf).

<RelativeLayout> 
    <FrameLayout> 
     <ImageView /> 
     <TextView /> 
    </FrameLayout> 
</RelativeLayout> 
1

Bitte ändern Sie das Layout entsprechend, wenn Sie die Bilder auf einem Imageview nur aufnehmen möchten, dann können Sie auch das unten stehende Layout in einer relativen man mit einem Imageview fallen.

<LinearLayout 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/your_image" 
     android:orientation="vertical" > 
    <TextView 
     android:id="@+id/bottom_textview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     <!-- layout_gravity="supply accordingly" --> 
     android:gravity="center"/> 

</LinearLayout> 
4

Sie können ein Frame-Layout erstellen und im Rahmen Layout einen Imageview halten und ein Linearlayout (mit einem durchscheinenden Hintergrund und ein Textview).

Die transluzente Farbe kann in den Farben gesetzt werden Datei wie: # 80000000 Hier ein Ausschnitt ist :)

<FrameLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/mainlayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:foregroundGravity="bottom" 
      android:orientation="vertical" > 

      <ImageView 
       android:id="@+id/ivFullScreenAd" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_marginBottom="8dp" 
       android:src="@drawable/home_page_ad" /> 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="bottom" 
       android:background="@color/translucent" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/detailTitle" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="left" 
        android:paddingLeft="10dip" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:text="Please swipe up" 
        android:textColor="@color/white" 
        android:textIsSelectable="true" 
        android:textSize="20sp" /> 
      </LinearLayout> 
     </FrameLayout> 
3

Obwohl eine alte Frage sollte aber incase jemand in der Kartenansicht Version dieser Frage hier interessiert ist, gehen Sie ...

<android.support.v7.widget.CardView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:cardCornerRadius="5dp" 
    app:cardElevation="5dp" 
    android:layout_weight="0.5" 
    app:cardPreventCornerOverlap="false" 
    app:cardUseCompatPadding="true" 
    android:clickable="true"> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:gravity="center_vertical" 
     android:layout_centerInParent="true"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="16dp" 
     android:background="#89969F"> 
    <ImageView 
     android:id="@+id/iv_overlay" 
     android:layout_width="196dp" 
     android:layout_height="196dp" 
     android:clickable="true" 
     android:src="@drawable/your_image" 
     android:layout_centerInParent="true" /> 


    </RelativeLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:background="#80000000" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:singleLine="true" 
       android:textSize="22sp" 
       android:textStyle="bold" 
       android:gravity="center_vertical" 
       android:text="Settings" 
       android:textColor="@color/white" 
       android:layout_gravity="center" 
       android:layout_alignParentTop="false" 
       android:layout_alignParentBottom="true" 
       android:layout_centerHorizontal="true" 
       android:padding="8dp" /> 

     </LinearLayout> 
    </FrameLayout> 
</android.support.v7.widget.CardView> 
+0

danke :) Aber ich bin nicht in der Lage, den Abstand zwischen den beiden Karten zu verwalten. Ich brauche auch die Bilder/Karten nahe beieinander, wie auf dem Bild in der Frage gezeigt. Aber ich sehe horizontale und vertikale Lücken. Alle stretchMode-Kombinationen wurden getestet. Jede schnelle Lösung? – AndroidGuy

+0

wenn ich dich richtig verstehe! Sie wollen nicht den Abstand zwischen den Karten. Wenn JA, ersetzen Sie 'android.support.v7.widget.CardView' durch 'RelativeLayout' '. Das sollte die Grenzen entfernen, die Sie sehen. Sie werden durch das card view-Attribut 'cardElevation' verursacht. –

+0

ok .. aber ich muss Karten verwenden. Ich werde versuchen, das cardElevation-Attribut zu entfernen und zu aktualisieren. Vielen Dank !! – AndroidGuy

Verwandte Themen