Ho una situazione nella pagina Graph dove LinearLayout
dovrebbe visualizzare il TextView
ruotato di 90 gradi.Come ruotare TextView 90 gradi e visualizzare
risposta
Il modo più veloce e più conveniente è quella di Rotate
da Animation
uso ruotare l'animazione sul tuo TextView regolare in questo modo.
rotateAnimation.xml:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="-90"
android:pivotX="50%"
android:duration="0"
android:fillAfter="true" />
del codice Java:
TextView text = (TextView)findViewById(R.id.txtview);
text.setText("rotated text here");
RotateAnimation rotate= (RotateAnimation)AnimationUtils.loadAnimation(this,R.anim.rotateAnimation);
text.setAnimation(rotate);
Questo è buono ma non mi ha aiutato molto a controllare questo http://stackoverflow.com/questions/1258275/vertical-rotated-label -in-android mi ha aiutato molto nella mia cs – sakshi
in Android per qualsiasi nuova vista non c'è un metodo chiamato setRotation(float) è possibile utilizzarlo
textview.setRotation(float);
ma per favore si noti che questo metodo è aggiunto in livello API 11
quindi se si vuole sostenere che è possibile utilizzare questo
if (Build.VERSION.SDK_INT < 11) {
RotateAnimation animation = new RotateAnimation(oldAngel, newAngel);
animation.setDuration(100);
animation.setFillAfter(true);
watermarkText.startAnimation(animation);
} else {
watermarkText.setRotation(progress);
}
Un po 'più di spiegazione sarebbe carino. –
Ho modificato la risposta per ulteriori informazioni –
Prova questa ::
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:rotation="-95"
android:text="2"
/>
FYI. Il problema è necessario in Build.VERSION.SDK_INT> 11 – MilapTank
in cui la larghezza non cambia. Qualche idea su come superare questo? – abh22ishek
[risolto] Dopo un anno di questo essere sulla mia lista, senza alcuna adeguata risposte sui forum ho finalmente risolto questo!
Il trucco qui è quello di codificare in modo rigido layout_width e layout_height di TextView
più grandi di quanto il testo sia mai stato, ad es. 100dp x 100dp.
Quindi posizionare il TextView
in un FrameLayout
e ruotare tagliando per il FrameLayout
android:clipChildren="false"
e clip per imbottitura off per il TextView android:clipToPadding="false"
:
TextView
with hard-coded height and width
Il TextView
verrà ora fluttuare FrameLayout
. Usa le impostazioni di gravità TextView
per spostare il testo all'interno del suo limite.
Quindi utilizzare le impostazioni layout_gravity per spostare il riquadro all'interno del genitore FrameLayout
all'interno di esso:
Ecco un esempio di destra e testo allineato in basso ruotato di -90 gradi:
[AGGIORNAMENTO] Esempio di XML per un testo a riquadri di riquadri:
<FrameLayout
android:layout_width="@dimen/item_col_width_val"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:padding="@dimen/table_header_margin">
<TextView
android:layout_width="@dimen/table_title_row_height"
android:layout_height="@dimen/table_title_row_height"
android:layout_gravity="bottom|end"
android:gravity="bottom"
android:rotation="-90"
android:text="@string/asm_col_title_in_stock"
android:textColor="@color/colorGood" />
</FrameLayout>
Si prega di condividere il codice xml in modo che possiamo capire più rapidamente la tua spiegazione della risposta. – ProgDevCode
@ProgDevCode ha aggiunto un codice XML come richiesto. – user7653815
<TextView
android:id="@+id/rotated_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:alpha=".3"
android:background="@drawable/grey_capsule"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="14sp"
android:padding="4dp"
android:layout_marginLeft="-50dp"
android:rotation="-90"
android:text="Andrew Coder" />
Grazie ........... –
Se non è necessaria l'animazione, è possibile provare una soluzione fornita in un modello simile question. Un testo verrà scritto dal basso verso l'alto.
Supporta tutte le funzionalità TextView base:
- dimensione del testo
- colore del testo
- carattere del testo
- imbottitura testo
- utilizzo tramite XML
punto principale è quello di override onDraw()
e onMeasure()
metodi basati su parametri di testo:
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
if (!this._text.isEmpty())
{
float textHorizontallyCenteredOriginX = this._measuredHeight/2f;
float textHorizontallyCenteredOriginY = this._ascent;
canvas.translate(textHorizontallyCenteredOriginY, textHorizontallyCenteredOriginX);
canvas.rotate(-90);
canvas.drawText(this._text, 0, 0, this._textPaint);
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
try
{
this._textPaint.getTextBounds(this._text, 0, this._text.length(), this._textBounds);
this._tempView = new TextView(getContext());
this._tempView.setPadding(this._leftPadding, this._topPadding, this._rightPadding, this._bottomPadding);
this._tempView.setText(this._text);
this._tempView.setTextSize(TypedValue.COMPLEX_UNIT_PX, this._textSize);
this._tempView.setTypeface(this._typeface);
this._tempView.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
this._measuredWidth = this._tempView.getMeasuredHeight();
this._measuredHeight = this._tempView.getMeasuredWidth();
this._ascent = this._textBounds.height()/2 + this._measuredWidth/2;
setMeasuredDimension(this._measuredWidth, this._measuredHeight);
}
catch (Exception e)
{
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
Log.e(LOG_TAG, Log.getStackTraceString(e));
}
}
prega, dare un'occhiata a Vertical (rotated) label in Android per vedere il codice sorgente completo.
- 1. Come posso ruotare una mesh di 90 gradi in ThreeJS?
- 2. Come ruotare una matrice N x N di 90 gradi?
- 3. immagine iphone catturato dalla fotocamera ruotare -90 gradi automaticamente
- 4. CSS ruotare div 90 gradi a margine sinistro
- 5. Ruota visualizzazione gerarchia 90 gradi
- 6. Rotazione di 90 gradi nei CSS in IE8 e inferiore
- 7. C# ruota la bitmap di 90 gradi
- 8. Come ruotare le etichette dell'asse x di 90 gradi nel piano di livello
- 9. Come posso ruotare di un array 2d in php di 90 gradi
- 10. Rotazione di una bitmap a 90 gradi
- 11. Come ruotare l'immagine x gradi in C#?
- 12. Zxing - Modifica visualizzazione telecamera -90 gradi
- 13. Rotazione di un array di pixel 2D di 90 gradi
- 14. VectorDrawableCompat e Canvas ruotano, disegnabili scompaiono a 90/270 gradi
- 15. ruotare il quadrante in gradi limitati
- 16. Ruota un tavolo html di 90 gradi in senso antiorario
- 17. Come si anima/ruota un UIView 90 gradi dall'angolo in alto a destra?
- 18. Come posso ruotare un'icona di carattere di 45 gradi?
- 19. Rotazione PDF a 90 gradi utilizzando iTextSharp in C#
- 20. Android ruota le immagini di 90 gradi (ripresa dalla fotocamera)
- 21. Perché dare addArcWithCenter a startAngle di 0 gradi lo fa iniziare a 90 gradi?
- 22. Cattura foto di 90 gradi in samsung mobile
- 23. Testo ruotato di 90 gradi, allineato alla pagina in alto a destra con CSS
- 24. Come ruotare la mia applicazione a 180 gradi capovolto quando si ruota il dispositivo a 180 gradi capovolto?
- 25. DbGeography.PointFromText() genera 'I valori di latitudine deve essere compresa tra -90 e 90 gradi' per il Giappone
- 26. ruotare una pagina di 180 gradi in LaTeX
- 27. Funzione Javascript per ruotare un'immagine 64 di base per X gradi e restituire nuova base64
- 28. Come visualizzare testo HTML in TextView
- 29. CSS3 Ruota da 0 a 90 e da 90 a 180
- 30. Come ruotare + flip elemento con CSS
http://stackoverflow.com/questions/1258275/vertical-rotated-label-in-android verificato questo e risolto il mio problema – sakshi
È possibile farlo in XML a partire da API 11 (Android 3.0). http://stackoverflow.com/questions/3774770/sideways-view-with-xml-android – chobok