如何在EditText中垂直制作文本(Android)

时间:2013-04-19 13:32:37

标签: android android-edittext

(抱歉我的问题很糟糕。我现在更新了)

如何在XML文件中创建它?我尝试使用以下代码,但不正确(我使用“android:rotation =” - 90“进行旋转。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<FrameLayout
    android:layout_width="141dp"
    android:layout_height="200dp"
    android:layout_weight="0.41"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/sidebar_title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/shape_card_sidebar"
        android:inputType="text"
        android:rotation="-90"
        android:text="I want to be like this" >
    </EditText>
</FrameLayout>

enter image description here

2 个答案:

答案 0 :(得分:2)

如果你尝试这样做,你会遇到几个问题。最明显的问题是不正确的测量。相反,您应该创建自定义视图。像这样:

public class RotatedTextVew extends TextView {
    public RotatedTextView(Context context) {
        super(context);
    }

    public RotatedTextView(Context context, AttributeSet attrs) {
        super(context, attrs)
    }

    public RotatedTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // Switch dimensions
        super.onMeasure(heightMeasureSpec, widthMeasureSpec);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.save();
        canvas.rotate(90);
        super.onDraw(canvas);
        canvas.restore();
    }
}

我实际上没有对此进行测试,但这就是我的开始。

答案 1 :(得分:0)

FrameLayout 替换为&lt; 相对&gt;或&lt; LinearLayout &gt;。同时设置父布局的android:gravity =“center”属性。