بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تکس ویو عمودی
سلام بچه ها چطور میشه یه تکس ویو عمودی داشت که بشه هم سایز هم فونت متن جای متن و طول و ارتفاع تکست ویو را انتخاب کرد؟؟
ممنون
کد:
<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 صفحه را اشغال می که و متن نشون میده
برای این سوال 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" />
اما مشکل اینه :

میخوام جزییات اندازه خط مشکی جا بگیره تکست ویوش بفیه فضا را اون دو تا پر کنند (که همین طورم هست اما مشکل میزان فضای اشغالی تکسویو)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
android:rotation="-90"(9 سال پیش)