1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. druber, 01.10.2010 #1
    druber

    druber Threadstarter Neuer Benutzer

    Hallo!

    Ich möchte ein Bild anzeigen, darüber einen Text legen und mehrere davon in einer Gallery anzeigen, dazu habe ich folgendens Layout:

    Code:
    <FrameLayout 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        xmlns:android="http://schemas.android.com/apk/res/android">
        <ImageView 
            android:id="@+id/image_swipe"
            android:src="@drawable/stub"
            android:scaleType="fitCenter"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"/>
        <TextView
            android:id="@+id/text_swipe"
            android:textSize="12sp"
            android:textColor="#000000"
            android:background="#ffffff"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:gravity="center_horizontal|bottom"/>
    </FrameLayout>
    
    Im Adapter von der Gallery habe ich dann folgenden Code:

    Code:
            public View getView(int position, View convertView, ViewGroup parent) {
                LayoutInflater inflater = (LayoutInflater)cont.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                
                View frameLayout = inflater.inflate(R.layout.frame, null);
    
                ImageView imgView = (ImageView)frameLayout.findViewById(R.id.image_swipe);
    
                imgView.setTag(data.get(position).getImageURLString());
                imageLoader.DisplayImage(data.get(position).getImageURLString(), parentActivity, imgView);
    
                imgView.setScaleType(ImageView.ScaleType.FIT_START);
                imgView.setBackgroundResource(GalItemBg);
    
                TextView textView = (TextView)frameLayout.findViewById(R.id.text_swipe);
                textView.setText(data.get(position).getTeaser());
                
                return frameLayout;
            }
    
    Mein Problem dabei ist, dass der Text immer oben angezeigt wird, weil der TextView einfach nicht so groß werden will, wie das darüberliegende FrameLayout.

    Ich verstehe es einfach nicht, weil ich habe ja "fill_parent" angegeben. Könnte der Fehler noch wo anders liegen?
     
  2. BenOtto, 02.10.2010 #2
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Das ist ein scheinbar häufig gemachter Fehler:

    - Das Attribut gravity bestimmt immer wie die enthaltenen Element defaultmäßig ausgerichtet werden (Im Falle von TextView wo der Text innerhalb des Bereichs der TextView ausgerichtet wird)

    - Das Attribut layout_gravity bestimmt wo das Element selbst innerhalb seines Elternelements ausgerichtet wird (in deinem Beispiel wo deine TextView im FrameLayout angezeigt wird)

    Änder' mal gravity zu layout_gravity, dann sollte das gehen.
     

Diese Seite empfehlen