2013-04-19 3 views
6

(Извините за мой плохой вопрос. Я обновить сейчас)Как сделать текст в EditText вертикально (Android)

Как я могу сделать это в файле XML? Я пытался использовать следующий код, но не правильно (я использовал «андроид: вращение =» - 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

+1

Вы хотите «EditText» или «TextView»? Кроме того, что не работает с вашим текущим кодом? – TronicZomB

+0

Нечто? чего вы точно хотите? то же, что и pic? как будет отображаться курсор? как вставить данные? – stinepike

+1

Если вы не объясните, что означает «не правильно», никто не сможет вам помочь. Также обратите внимание, что 'android: rotation' будет работать только на уровне API 11 или выше. – CommonsWare

ответ

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(); 
    } 
} 

Я не на самом деле протестировал это, но так я и начал.

0

Заменить FrameLayout с < Относительная> или < LinearLayout>. Также установите свойство android: gravity = "center" родительского макета.

Смежные вопросы