是否可以以对角线方式显示文本,如果是,那么我们如何实施,请帮助我感谢。 我添加了图片,我必须将WORLD文本替换为其他文本。
答案 0 :(得分:1)
请看这里:How to Rotate TextView 90 Degrees and display。
最简单的方法是:
TextView
。TextView
。答案 1 :(得分:1)
如果您使用的是API 11或更高版本,则可以尝试:
TextView tv = (TextView) findViewById(R.id.txtview);
String txt = "Stackoverflow";
tv.setText(txt);
tv.setRotation(45); // 45 degree rotation
试试这个..
答案 2 :(得分:0)
在XML中使用android:rotation
或
textView.setRotation(角)
http://developer.android.com/reference/android/view/View.html#attr_android:rotation
答案 3 :(得分:-1)
我已经使用自定义textview实现了感谢您的宝贵回复。在4.0设备上正常工作需要在2.2设备上进行测试。
public class DiagonalTextView extends TextView{
final boolean topDown;
public DiagonalTextView(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 boolean setFrame(int l, int t, int r, int b){
return super.setFrame(l, t, l+(b-t), t+(r-l));
}
@Override
public void draw(Canvas canvas){
if(topDown){
canvas.translate(getHeight(), 0);
canvas.rotate(45);
}else {
canvas.translate(0, getWidth());
canvas.rotate(-45);
}
canvas.clipRect(0, 0, getWidth(), getHeight(), android.graphics.Region.Op.REPLACE);
super.draw(canvas);
}
}