Estoy teniendo una situación en la página de gráficos donde LinearLayout
debe mostrar el TextView
con 90 grados de rotación.Cómo rotar TextView 90 grados y mostrar
Respuesta
La forma más rápida y más conveniente es Rotate
por Animation
animación uso rotarla en la Vista de Texto normal como tal.
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" />
Código 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);
Esto es bueno, pero no me ayudó mucho comprobé este http://stackoverflow.com/questions/1258275/vertical-rotated-label -in-android me ayudó mucho en mi cse – sakshi
En androide para cualquier nuevo punto de vista hay un método llamado setRotation(float) se puede usar
textview.setRotation(float);
pero por favor tenga en cuenta que este método se agrega en el nivel de API 11
así que si quieres apoyarla Puede utilizar esta
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 poco más de explicación sería bueno. –
He editado la respuesta para obtener más información –
Prueba este ::
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:rotation="-95"
android:text="2"
/>
FYI. Su necesidad Build.VERSION.SDK_INT> 11 – MilapTank
problema en este enfoque es el tamaño de ancho no cambia. ¿Alguna idea de cómo superar esto? – abh22ishek
[SOLUCIONADO] Después de un año de este ser en mi lista de cubo sin ningún tipo adecuado respuestas en los foros ¡Finalmente he ordenado esto!
El truco aquí es codificar el layout_width y el layout_height del TextView
más grande de lo que jamás será el texto, p. Ej. 100dp x 100dp.
luego colocar el TextView
en un FrameLayout
y girar fuera de recorte para la FrameLayout
android:clipChildren="false"
y clip para el relleno fuera de la TextView android:clipToPadding="false"
:
TextView
with hard-coded height and width
El TextView
ahora flotará en el FrameLayout
. Use la configuración de gravedad TextView
para mover el texto dentro de su límite.
A continuación, utilice la configuración layout_gravity para mover el límite dentro de la matriz FrameLayout
dentro de ella:
Aquí es un ejemplo de la derecha y texto alineado inferior girada 90 grados:
[ACTUALIZAR] XML de ejemplo para una carcasa de vista de marco rotado texto:
<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>
Comparta su código xml para que podamos entender más rápidamente su explicación de su respuesta. – ProgDevCode
@ProgDevCode agregó algunos XML según lo solicitado. – 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" />
Gracias ........... –
Si no necesita animación, puede probar una solución provista en un question similar. Se escribirá un texto de abajo hacia arriba.
Es compatible con todas las características del TextView básicos:
- tamaño del texto
- color del texto
- fuente del texto
- relleno de texto
- uso a través de XML
punto principal es anular onDraw()
y onMeasure()
métodos basados en parámetros de su texto:
@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));
}
}
Por favor, miren Vertical (rotated) label in Android para ver el código fuente completo.
- 1. Rotar una matriz bidimensional en 90 grados
- 2. Rotar un mapa de bits 90 grados
- 3. Cómo rotar una imagen 90 grados en iOS?
- 4. ¿Cómo rotar una matriz N x N en 90 grados?
- 5. ¿Girando un CALayer 90 grados?
- 6. Cómo rotar las etiquetas del eje x 90 grados en el diagrama de nivel
- 7. ¿Cómo rotar una matriz 90 grados sin usar ningún espacio extra?
- 8. ¿Cómo rotar la imagen mediante programación en 90 grados en iPhone?
- 9. Lossless JPEG ¿Girar (90/180/270 grados) en Java?
- 10. Writeablebitmap.SaveJpeg está girando mi imagen -90 grados
- 11. Rotar matriz 2D en 45 grados
- 12. Cómo rotar mi aplicación 180 grados boca abajo al girar el dispositivo 180 grados al revés?
- 13. Zxing - Cambio de la vista de la cámara -90 grados
- 14. UIImagePNGR ¿Problemas con la presentación?/Imágenes giradas 90 grados
- 15. ¿Cómo recortar y rotar la imagen mediante programación en Android?
- 16. ¿La manera más fácil de girar 90 grados una imagen usando OpenCV?
- 17. ¿Es posible rotar programáticamente la vista en 180 grados?
- 18. Android gira mapa de bits 90 grados resultados en imagen aplastada. Necesita una verdadera rotación entre vertical y horizontal
- 19. Cómo rotar una tabla 45 grados y guardar el resultado en otra tabla?
- 20. Android get Orientación de una cámara Bitmap? Y gire hacia atrás -90 grados
- 21. ¿Cómo giro UIImageView 90 grados dentro de UIScrollView con el tamaño de imagen correcto y el desplazamiento?
- 22. Símbolo de grados (como en grados Celsius/Fahrenheit) en un TextView
- 23. C# rotate bitmap 90 degrees
- 24. ¿Rotar una parcela en MATLAB?
- 25. ¿Cómo activar una función cuando el iPhone se gira 90 grados?
- 26. OpenCV: cómo rotar IplImage?
- 27. Cómo rotar el texto Swing?
- 28. Girar una sola página 90 grados con iTextSharp/VB en un PDF de varias páginas existente
- 29. mostrar smiley en textview y edittext en android
- 30. Cómo rotar una matriz 2D de enteros
http://stackoverflow.com/questions/1258275/vertical-rotated-label-in-android comprobé esto y resolvió mi problema – sakshi
Es posible hacer esto en XML a partir de API 11 (Android 3.0). http://stackoverflow.com/questions/3774770/sideways-view-with-xml-android – chobok