| |||||||
Das Thema "Auslesen einer konkreten Pixelzahl von match_parent bei einem LinearLayout" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 04.08.2011
Beiträge: 16
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
| kurz und knapp. ich habe ein linearLayout welches match_parent und 80 als breite und höhe hat. drehe ich jetzt das tablet und wechsle in den portrait modus wird mein linearlayout von der breite her kleiner. ich brauche aber den konkreten wert wie breit das layout im landscape oder portrait modus gerade ist (für eine berechnung wieviele buttons einer bestimmten größe ohne zu scrollen in das linlay passen würden). Frage: GIBT ES EINEN WEG DEN WERT VON MATCH_PARENT IN EINER SITUATION (LANDSCAPE O. PORTRAIT) IN DP AUSZULESEN?? danke terth |
| | |
| | #2 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Hi, ja den gibt es. Du kannst die Höhe und Breite in Pixeln abfragen und das anschließend umrechnen. Das sollte helfen: scaling - Android and setting width and height programmatically in dp units - Stack Overflow Bei weiteren Fragen, frag =)
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 04.08.2011
Beiträge: 16
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Hallo, danke für deine Antwort. Für diese Code Zeilen bräuchte ich doch einen dps wert: Code: final float scale = getContext().getResources().getDisplayMetrics().density; int pixels = (int) (dps * scale + 0.5f); in meinem test hier ist es das ziel eine dp zahl oder eine andere größeninformation aus dem roten layout zu ermitteln um dynamisch die anzahl an buttons zu berechnen die reinpassen würde. die muss natürlich unterschiedlich sein je nachdem ob ich landscape oder portrait habe. ich poste dir hier mal meinen test: main.xml Code: <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/labels"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/buttons"
android:orientation="horizontal" >
<TextView
android:id="@+id/widthLabel"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:text="LinLayWidth below: "
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/infoLabel"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:id="@+id/areaRight"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#ff00ff00"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/labels"
android:layout_toLeftOf="@+id/areaRight"
android:background="#ffff0000"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout> Code: public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
} liebe grüße Terth |
| | |
| | #4 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Die Umrechnung sollte jetzt kein Problem mehr darstellen. Eine View hat immer als Höhe und Breite 0, wenn die Werte noch nicht berechnet wurden. In der onCreate Methode wirst du beispielsweise immer 0 erhalten, weil die Layoutgröße noch nicht feststeht! Zum Testen könntest du beispielsweise mal einen Button hinzufügen und in der onClick Methode die Höhe bzw. Breite abfragen. Ich wette, jetzt sind die Werte nicht mehr 0 Die Frage ist nun, wo man die Abfrage richtig platziert. Ich nutze in der Regel einen OnGlobalLayoutListener. Mit ihm kann man Statusänderungen der View oder Sichtbarkeit der Kinder in der View abfangen. Hier ein Snippet: Code: imageView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (viewHeight == 0 || viewWidth == 0) {
viewHeight = imageView.getHeight();
viewWidth = imageView.getWidth();
}
}
}); Falls es dich interessiert, die Methode habe ich auch in meiner Shutdown App eingebunden. Dort geht es um eine Grafik, die entsprechend skaliert werden muss, wenn die Höhe und Breite der View feststeht. Mit dem Listener klappt es wunderbar. Viele Grüße
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 04.08.2011
Beiträge: 16
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Hallo, hat super geklappt das ist echt eine verdammt praktische Methode. Das schreib ich auf jeden Fall in meine Seminararbeit. Ich fertige gerade für die uni und die arbeit eine art guide durch android an. natürlich kein anspruch auf vollständigkeit aber das ist schon cool. danke grüße Terth |
| | |
| | #6 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Kein Problem Freut mich, dass es klappt. Und noch eine Anmerkung zum Forum (auch wenn es bettelnd rüberkommt, was es nicht soll ), es gibt hier einen Danke Button, der auch betätigt werden darf Viele Grüße
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| Folgender Benutzer bedankt sich bei v Ralle v für diesen Beitrag: | Terth (21.11.2011) |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Auslesen einer Webseite beschleunigen | ChrisMobile | Android App Entwicklung | 3 | 24.09.2011 10:49 |
| Auslesen einer (eigenartigen) XML-Datei | chemistry | Android App Entwicklung | 2 | 08.09.2011 15:19 |
| SMS von einem Nandroid-Backup auslesen? | NiXiN | Root / Hacking / Modding für Motorola Milestone | 4 | 03.10.2010 20:45 |
| Misstrauen bei Gesprächen mit einem/einer anderen? | franziska-nb | Smalltalk und Offtopic | 9 | 01.08.2010 09:31 |
| SimpleCursorAdapter imageview ausgabe von einer DB auslesen, wie? | kkm | Android App Entwicklung | 1 | 23.05.2010 10:11 |