在-90度旋转TextView的总 [英] Rotate total Textview in -90 degrees
本文介绍了在-90度旋转TextView的总的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想设置我的TextView的在-90度意味着我哈弗显示它这个样子!我ahve显示在单一的线性布局8 textviews。我能够旋转,但我可以看到只有一个textview.Please任何一个可以帮助我做一些例子。
先谢谢了。
公共类AngledTextView扩展的TextView
{ 公共AngledTextView(上下文的背景下,ATTRS的AttributeSet)
{
超(背景下,ATTRS);
} @覆盖
保护无效的onDraw(帆布油画)
{//保存当前矩阵
canvas.save();
//为中心旋转由此看来
canvas.rotate(270,this.getWidth()/ 2,this.getHeight()/ 2);
// 画出来
super.onDraw(画布);
//还原到previous矩阵
canvas.restore();
}
}
解决方案
对于垂直的TextView我用下面的code和它完美工作。
公共类VerticleTextView扩展的TextView {最终布尔自上而下;
公共VerticleTextView(上下文的背景下,ATTRS的AttributeSet){
超(背景下,ATTRS);
最终诠释比重= getGravity();
如果(Gravity.isVertical(重力)及及(重力&放大器; Gravity.VERTICAL_GRAVITY_MASK)== Gravity.BOTTOM){
setGravity((重力和放大器; Gravity.HORIZONTAL_GRAVITY_MASK)| Gravity.TOP);
自上而下= FALSE;
}其他
自上而下= TRUE;
} @覆盖
保护无效onMeasure(INT widthMeasureSpec,诠释heightMeasureSpec){
super.onMeasure(heightMeasureSpec,widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(),getMeasuredWidth());
} @覆盖
保护无效的onDraw(帆布油画){
TextPaint textPaint = getPaint();
textPaint.setColor(getCurrentTextColor());
textPaint.drawableState = getDrawableState(); canvas.save(); 如果(自上而下){
canvas.translate(的getWidth(),0);
canvas.rotate(90);
}其他{
canvas.translate(0,的getHeight());
canvas.rotate(-90);
}
canvas.translate(getCompoundPaddingLeft(),getExtendedPaddingTop()); 。getLayout()画(油画);
canvas.restore();
}
}
I want to set my textview in -90 degrees means i haver to show it like this! i ahve to show 8 textviews in single linear layout. i am able to rotate but i can see only one textview.Please can any one help me with some example.
Thanks in advance.
public class AngledTextView extends TextView
{
public AngledTextView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas)
{ // Save the current matrix
canvas.save();
// Rotate this View at its center
canvas.rotate(270,this.getWidth()/2, this.getHeight() /2);
// Draw it
super.onDraw(canvas);
// Restore to the previous matrix
canvas.restore();
}
}
解决方案
for a vertical TextView i used the following code and it worked perfectly.
public class VerticleTextView extends TextView {
final boolean topDown;
public VerticleTextView(Context context, AttributeSet attrs){
super(context, attrs);
final int gravity = getGravity();
if(Gravity.isVertical(gravity) && (gravity&Gravity.VERTICAL_GRAVITY_MASK) == Gravity.BOTTOM) {
setGravity((gravity&Gravity.HORIZONTAL_GRAVITY_MASK) | Gravity.TOP);
topDown = false;
}else
topDown = true;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}
@Override
protected void onDraw(Canvas canvas){
TextPaint textPaint = getPaint();
textPaint.setColor(getCurrentTextColor());
textPaint.drawableState = getDrawableState();
canvas.save();
if(topDown){
canvas.translate(getWidth(), 0);
canvas.rotate(90);
}else {
canvas.translate(0, getHeight());
canvas.rotate(-90);
}
canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop());
getLayout().draw(canvas);
canvas.restore();
}
}
这篇关于在-90度旋转TextView的总的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文