0

Я пытаюсь сделать что-то вроде изображения ниже, где у меня есть поворот (90 °) TextView с marginLeft, связанный с ImageView. Проблема в том, что когда я увеличиваю значение TextView, скажем от 2 до 2000000, он перемещается вправо, ведя себя как невращающийся TextView (см. Синий квадрат вокруг него). Как я могу это исправить?Повернутый TextView в RelativeLayout с Margin - TextView все еще работает, как если бы он не вращался

Спасибо!

Код:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/ll_note" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
> 

<ImageView 
    android:id="@+id/iv_flange" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="40dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="40dp" 
    android:adjustViewBounds="true" 
    android:contentDescription="@string/title" 
    android:scaleType="matrix" 
    android:src="@drawable/drawing_flange" > 
</ImageView> 

<TextView 
    android:id="@+id/tv_dimC" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/iv_flange" 
    android:layout_alignTop="@+id/iv_flange" 
    android:layout_marginLeft="90dp" 
    android:layout_marginTop="210dp" 
    android:gravity="left" 
    android:rotation="270" 
    android:text="Ø1200" 
    android:textColor="#000" 
    android:textSize="14sp" /> 

<TextView 
    android:id="@+id/tv_dimd" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/iv_flange" 
    android:layout_alignTop="@+id/iv_flange" 
    android:layout_marginLeft="-25dp" 
    android:layout_marginTop="215dp" 
    android:gravity="center" 
    android:textAlignment="center" 
    android:rotation="270" 
    android:text="Ø200000000000" 
    android:textColor="#000" 
    android:textSize="14sp" /> 

<TextView 
    android:id="@+id/tv_dime" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/iv_flange" 
    android:layout_alignTop="@+id/iv_flange" 
    android:layout_marginLeft="40dp" 
    android:layout_marginTop="145dp" 
    android:gravity="center" 
    android:rotation="270" 
    android:text="300" 
    android:textColor="#000" 
    android:textSize="14sp" /> 

<TextView 
    android:id="@+id/tv_dimf" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/iv_flange" 
    android:layout_alignTop="@+id/iv_flange" 
    android:layout_marginLeft="140dp" 
    android:layout_marginTop="-15dp" 
    android:gravity="center" 
    android:rotation="0" 
    android:text="75" 
    android:textColor="#000" 
    android:textSize="14sp" /> 

<TextView 
    android:id="@+id/tv_dimg" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/iv_flange" 
    android:layout_alignTop="@+id/iv_flange" 
    android:layout_marginLeft="190dp" 
    android:layout_marginTop="-15dp" 
    android:gravity="center" 
    android:rotation="0" 
    android:text="130" 
    android:textColor="#000" 
    android:textSize="14sp" /> 

</RelativeLayout> 

enter image description here enter image description here

+0

Не могли бы вы разместить свой текущий xml для этого макета? –

+0

Я попытался вращаться программно (используя 'TextView.setRotation (90)' и даже используя 'анимацию', но это тоже не работает .. Я искал везде, и я не могу найти решение, я почти используя его в горизонтальной (по умолчанию) ориентации, но поскольку «marginLeft» связан с левой стороной границы TextView («синий квадрат» на изображении вокруг текста), я не могу сохранить текст в центре линии .. Я не могу поверить, что нет способа исправить это. – xadun

+0

Я вижу. Лучше писать пользовательский TextView, который также обновляет свои границы. См. Это для примера http://stackoverflow.com/questions/2888780/is-it-possible-to-write-vertical-in-a-textview-in-android/17001995 # 17001995 –

ответ

1

Даже если вы повернете TextView с помощью android:rotaion в XML или myTextView.setRotation() в коде Java, то границы представления текста не обновиться до угла Вас повернул текст в. Чтобы преодолеть это, вы можете написать обычай TextView, который рисуется под нужным углом, в котором вы нуждаетесь. Пожалуйста, проверьте this ответ на отправную точку.