2017-10-27 4 views
-1

Ich weiß, dass diese Frage sehr gefragt wurde. Aber er antwortet nicht für mich.Android Maßnahme Textansicht

Hier ist ein einfaches Textview ist:

<TextView 
    android:id="@+id/cardText" 
    android:layout_width="240dp" 
    android:layout_height="wrap_content" 
    android:layout_marginEnd="30dp" 
    android:layout_marginStart="30dp" 
    android:layout_marginTop="60dp" 
    android:background="@color/transparent" 
    android:padding="0dp" 
    android:paddingBottom="0dp" 
    android:paddingEnd="0dp" 
    android:paddingStart="0dp" 
    android:paddingTop="0dp" 
    android:text="hello world" 
    android:textSize="36sp" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toTopOf="parent" /> 

In meiner Haupttätigkeit, bekomme ich es auf diese Weise: final TextView cardNumber = (TextView) findViewById(R.id.cardNumber);

Und das versuche ich zu messen.

int ww = cardText.getMeasuredWidth(); 
int hh = cardText.getMeasuredHeight(); 
Log.v("ww", String.valueOf(ww)); // => 630 
Log.v("hh", String.valueOf(hh)); // => 127 

=> WTF

Ich kann auch versuchen, einige Einschränkungen für die Messungen zu machen:

cardText.measure(View.MeasureSpec.makeMeasureSpec(240, View.MeasureSpec.EXACTLY), 0); 
int ww = cardText.getMeasuredWidth(); 
int hh = cardText.getMeasuredHeight(); 
Log.v("ww", String.valueOf(ww)); // => 240 
Log.v("hh", String.valueOf(hh)); // => 238 

Dieses macht ein wenig mehr Sinn für das mit. Aber was ist mit der Höhe?

Ich probierte viele seltsame Kombinationen aus, aber ich schaffe es nicht, die Höhe meiner Textansicht zu erreichen.

Die Messung erfolgt auf Knopfdruck; Es gibt also kein Erstellungsstatusproblem.

(das Endziel ist Auto zu meinem Text passen, ich einige Bibliotheken gefunden, aber sie Autofit nur mit)

+0

Zum Zeitpunkt des Lebenszyklus der Aktivität messen Sie die Breite und Höhe? – Barns

+0

Was ist die Frage genau? Fragen Sie sich, warum die 'dp'-Werte (dichteunabhängige Pixel) im Layout anders sind als die Pixelwerte im Code? https://stackoverflow.com/q/2025282. –

+0

@ Scheunen: Ich habe eine Schaltfläche, ich klicke es, um die Maßnahmen zu erhalten => so nach jedem möglichen Lebenszyklus Problem – fabien

Antwort

1

Sie den Wert in Pixel bekommen, aber Sie sind es in der Dichte Pixel einstellen. Wenn Sie den zurückgegebenen Wert in DP konvertieren, erhalten Sie eine sehr enge Zahl. In meinem Fall habe ich 232.38095 als Rückgabe bekommen.

+0

Ich denke, du hast Recht. Ich brauche noch weitere Tests. aber es könnte das Problem sein! – fabien