在布局中添加垂直按钮

时间:2018-09-03 06:12:30

标签: android android-layout

我创建了一个db.test.find(function() { return this.data(function(elm) { "cell phones".replace(/ /g,"") == elm.name }); }); 并尝试添加一个Layout,但似乎无法将其从vertical-button更改为horizontalvertical必须位于vertical-button imageview旁边。

布局

btn_about_us

2 个答案:

答案 0 :(得分:0)

代替线性按钮,而是采用线性布局。在linearlayout中,使用textview。使用android:rotation =“ 90”将textview旋转90度。这与Button一样。

答案 1 :(得分:0)

使用textview代替Button。 Button也从TextView类扩展。这是自定义TextView,它将使textview垂直。

希望这可以解决问题。

 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 void onDraw( Canvas canvas )
    {
        TextPaint textPaint = getPaint();
        textPaint.setColor( getCurrentTextColor() );
        textPaint.drawableState = getDrawableState();

        canvas.save();

        if ( topDown )
        {
            canvas.translate( getWidth(), 0 );
            canvas.rotate( 90 );
        }
        else
        {
            canvas.translate( 0, getHeight() );
            canvas.rotate( -90 );
        }

        canvas.translate( getCompoundPaddingLeft(), 
            getExtendedPaddingTop() );

        getLayout().draw( canvas );
        canvas.restore();
    }
}
  

然后像这样在XML中使用

<com.stylingandroid.verticaltext.VerticalTextView
style="@style/verticalTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom|right"
android:text="@string/text" />
  

在res / values / styles.xml中创建样式

<?xml version="1.0" encoding="utf-8"?>
<resources
    xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="verticalTextStyle"
        parent="android:Widget.TextView">
        <item name="android:padding">20dp</item>
        <item name="android:textSize">20sp</item>
    </style>
</resources>