Gravity.RIGTH auf ImageView

Chaoz

Chaoz

Fortgeschrittenes Mitglied
13
kurzum:

wie ich innerhalb eines Tablelayouts die ausrichtung (gravity) bestimme ist mir "eigtl" klar... nur merk ich gerade, dass ein .setGravity() nicht bei einer ImageView funktioniert.

ergo:
wie kann ich in einem Tablelayout links meinen Text und rechts meine imageView anzeigen? (das ganze möglichst ohne xml).

siehe auch....

hello-tablelayout.png


Gruß
chaoz
http://developer.android.com/intl/de/guide/tutorials/views/images/hello-tablelayout.png
 
Irgend Jmd ne Idee? =/
 
Chaoz schrieb:
(das ganze möglichst ohne xml).

warum erbst du nicht von listactivity und gibst das layout für jede zeile über eine xml vor?
 
Ich hab vorgaben an die ich mich halten muss ^^
Soweit ich weiss, hat man bei einer Listactivity u.A. auch nicht die möglichkeit oben tabs einzubauen oder?

Das mit dem TableLayout kan nich ja ggf. noch abändern,
Fakt ist aber, dass ich in einer Liste 3 Spalten (Text - Text - Image) brauche und da hielt ich das Tablelayout für geeignet.

PS: "angenommen" ich würde auf eine Listactivity und einer entsprechenden XML setzen... wie sollte die xml aussehen? (In der xml kann ich die gravity ja trotzdem nicht einstellen oder?!)

Danke schonmal im voraus ^^
Gruß
Chaoz
 
Chaoz schrieb:
Ich hab vorgaben an die ich mich halten muss ^^
Soweit ich weiss, hat man bei einer Listactivity u.A. auch nicht die möglichkeit oben tabs einzubauen oder?

Das mit dem TableLayout kan nich ja ggf. noch abändern,
Fakt ist aber, dass ich in einer Liste 3 Spalten (Text - Text - Image) brauche und da hielt ich das Tablelayout für geeignet.

PS: "angenommen" ich würde auf eine Listactivity und einer entsprechenden XML setzen... wie sollte die xml aussehen? (In der xml kann ich die gravity ja trotzdem nicht einstellen oder?!)

Danke schonmal im voraus ^^
Gruß
Chaoz

Ok, das is'n Argument :D.
Du kannst für die Zeilen innerhalb der ListActivity doch eine eigene Layout XML angeben. Dort kannst du ja, nach Belieben, deine Views anordnen.
 
Öhm... soweit ich weiss gelten die XML attribute genauso wie für die controls.
Ergo: jedes XML Attribut hat ihr code-pendant...

nur wenn ne Imageview kein setGravity im code hat, dürfte es im xml auch nicht anders ausseehen. =/
 
hm. ich hoffe wir reden jetzt nicht aneinander vorbei.
ich hab eine activity die listactivity implementiert. links habe ich zwei textviews untereinander und rechts eine grafik. das layout hab ich in einer eigenen row.xml und übergebe es an den adapter für die listactivity im konstruktor. funktioniert soweit.
ich bin sowieso kein großer freund von gui-setups im code, wenn man das über xml-files lösen kann.
 
TheFlatz|Veit schrieb:
hm. ich hoffe wir reden jetzt nicht aneinander vorbei.
ich hab eine activity die listactivity implementiert. links habe ich zwei textviews untereinander und rechts eine grafik. das layout hab ich in einer eigenen row.xml und übergebe es an den adapter für die listactivity im konstruktor. funktioniert soweit.
ich bin sowieso kein großer freund von gui-setups im code, wenn man das über xml-files lösen kann.

Hm... ich bin swing- und Blackberry-geschädigt xD
Mal sorum... in deiner row.xml hast du aber kein TableLayout oder auf deiner Grafik ein Gravity.RIGHT oder?

(Kannst mir ja ma n teil des xml codes posten ...bitte... ^^ )
 
klar. in der row.xml hab ich ein linear layout. in diesem wiederum ein imageview und noch ein linearlayout mit den beiden textviews. das kannst du jetzt positionieren.
in meinem beispiel ist das bild übrigens links, sollte aber trotzdem verdeutlichen was ich meine :).

Code:
  <ImageView
      android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_marginRight="6dip"
    android:src="@drawable/list_view_icon_white" />
    <!-- Zwei Textviews untereinander -->
    <LinearLayout
        android:orientation="vertical"
      android:layout_width="0dip"
      android:layout_weight="1"
      android:layout_height="fill_parent">
      <!-- oberer textteil -->
      <TextView
          android:id="@+id/toptext"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
      />
      <!-- unterer textteil -->
      <TextView
          android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:id="@+id/bottomtext"
        android:singleLine="true"
        android:ellipsize="marquee"
      />
    </LinearLayout>


 
Zuletzt bearbeitet:
ich werds mal morgn ausprobieren, aber ich glaube nicht, dass ich damit erreichen kann, dass ein image ganz rechts angezeigt wird, ganz links ist ja default.

Feedback folgt morgn. ;-)
 
habs gerade probiert. sollte funktionieren :).
 
TheFlatz|Veit schrieb:
habs gerade probiert. sollte funktionieren :).

Wunder mich gerade sehr, wie das funktionieren soll. =(
Deine Grafik ist nur desshalb ganz links, weil das das defaultAlignment ist.

sieh dir bitte mal den angehangenen Screenshot an.
Wie bekomme ich diese grafik ganz nach rechts?
Oder was hast du bei dir gemacht, dass es funktioniert? (Zitat oben...)

Fakt ist: der text muss ganz links, die grafik ganz rechts.

Wenn du eine Lösung hättest wäre ich dir echt dankbar. =(

Gruß
Chaoz
 

Anhänge

  • device.png
    device.png
    5,6 KB · Aufrufe: 173
weiß jetzt nicht wo dein problem liegt. wenn du views in der xml korrekt anordnest, ergibt dass bei mir genau dass was du willst.

Code:
<LinearLayout 
  <!-- Zwei Textviews untereinander -->
    <LinearLayout>
      <!-- oberer textteil -->
      <TextView
      />
      <!-- unterer textteil -->
      <TextView
      />
    </LinearLayout>
    <!-- icon -->
    <ImageView>
    />
</LinearLayout>
 
Ok ich glaub Freitag morgn um1 is einfach zu spät xD
Ich werds nochma probieren und dir n feedback geben,...

gruß
chaoz
 
TheFlatz|Veit schrieb:
weiß jetzt nicht wo dein problem liegt. wenn du views in der xml korrekt anordnest, ergibt dass bei mir genau dass was du willst.

Code:
<LinearLayout 
  <!-- Zwei Textviews untereinander -->
    <LinearLayout>
      <!-- oberer textteil -->
      <TextView
      />
      <!-- unterer textteil -->
      <TextView
      />
    </LinearLayout>
    <!-- icon -->
    <ImageView>
    />
</LinearLayout>

Meines Wissens nach müsste das genau zu dem Bild führen, dass Chaoz oben gepostet hat.
Ich wrappe momentan das ImageView nochmals mit einem LinearLayout, auf welches man wie gewohnt gravity anwenden kann.
Chaoz, wie hast du das denn nun gelöst?
 
jungs :D so schwer ist es doch garnet ;) So eine lange Diskussion wegen was simplen ;)

Es ist ganz einfach die Anordung wie eben gepostet stimmt schon... kann auch per code gemach werden(was ich bevorzuge [da man controls so auslagern kann ohne abhängigkeiten von xmls ;)])

du musst dem Mittleren nur "FÜLLEN" lassen.. sprich dem linken gibts de einfach ne feste breite und dem rechten auch und in der Mitte, lässt du einfach füllen =) und schon ist dein Problem gelöst.

im code kannst de das beim SetLayoutParams angeben und im code glaub mit weight oder so... musst ma googlen =)

edit: grad gesehen, dasset veraltet ist hier :D egal ^^

gruß
Micha
 
Wenn ich den linken oder mittleren füllen lasse, wird der rechte wohl nicht mehr angezeigt!?
Kannst du bitte mal ein kurzes Code Beispiel bringen?
 
mensch mensch :D leut alle zu faul für google ;D

// WEIGHT = 1f, GRAVITY = center topPanel.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1)); topPanel.setOrientation(LinearLayout.VERTICAL); topPanel.setGravity(Gravity.CENTER);
 
Hi,
kann mir jemand erklären, wie bei dieser Herangehensweise der Java-Code aussehen würde? Also wie ich hier z.B. Name/Status/Image dynamisch vergeben kann?
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
114
swa00
swa00
B
Antworten
4
Aufrufe
470
bb321
B
Zurück
Oben Unten