آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تکس ویو عمودی

احمد  9 سال پیش  9 سال پیش
0 0

سلام بچه ها چطور میشه یه تکس ویو عمودی داشت که بشه هم سایز هم فونت متن جای متن و طول و ارتفاع تکست ویو را انتخاب کرد؟؟

ممنون

کد:

  <style name="verticalTextStyle" parent="android:Widget.TextView">
<item name="android:padding">2dp</item>
<item name="android:layout_margin">2dp</item>
<item name="android:textSize">14sp</item>
</style>

*********************************************************************************

<TextView
android:id="@+id/vtxttitle_guysdetail"
style="@style/verticalTextStyle"
android:layout_width="15dp"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/activity_guysdetail_title" />

*********************************************************************************

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="0"
android:fillAfter="true" >

<rotate
android:fromDegrees="0"
android:pivotX="100%"
android:pivotY="0"
android:toDegrees="-90" />

<translate
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%"
android:toYDelta="0" />

</set>

***********************************************************************************

verticalLabelView = (TextView) findViewById(R.id.vtxttitle_guysdetail);
verticalLabelView.startAnimation(
AnimationUtils.loadAnimation( this,
R.anim.rotatetext ) );

اما متن را شون نمیده وقتی  android:layout_width="wrap_content" ساشه 1/3 صفحه را اشغال می که و متن نشون میده

+1 0
سلام ، با این ویژگی نمیشه : android:rotation="-90" (9 سال پیش)
0 0
کد را قرار دادم (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Reza  9 سال پیش
0 0

اگه نظر بالا جواب نداد ، شما باید یه کلاس اکستندز شده از TextView بسازید و متد onDraw رو override کنید :

 

 
public class VerticalTextView extends TextView{
   final boolean topDown;

   public VerticalTextView(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(90);
      }else {
         canvas.translate(0, getWidth());
         canvas.rotate(-90);
      }
      canvas.clipRect(0, 0, getWidth(), getHeight(), android.graphics.Region.Op.REPLACE);
      super.draw(canvas);
   }
}
پاسخ به سوال 
احمد  9 سال پیش
0 0

ممنون رضا جان من از کد زیر استفاده کر دم 

  <TextView
android:id="@+id/vtxttitle_guysdetail"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight=".3"
android:gravity="center"
android:rotation="-90"
android:text="@string/activity_guysdetail_title"
android:textColor="@color/purple_color" />

اما مشکل اینه :


میخوام جزییات اندازه خط مشکی جا بگیره تکست ویوش بفیه فضا را اون دو تا پر کنند (که همین طورم هست اما مشکل میزان فضای اشغالی تکسویو)


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .