web-dev-qa-db-ja.com

Android relativelayout?

私はこれを見た subject Android textviewの周りにボーダーを配置することについて、そして私はそれを使用しました。しかし、今、私は相対レイアウトに配置されています。

21
AyaAndro
  1. あなたのres/drawableフォルダ、新しいファイルを作成background_border.xml

このファイルでは、次のようにウィジェットの背景を定義します。

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
       Android:shape="rectangle" >
    <!-- This is the stroke you want to define -->
    <stroke Android:width="1dp" 
            Android:color="@color/color_stroke"/>

    <!-- Optional, round your corners -->
    <corners Android:bottomLeftRadius="0dp"
             Android:topLeftRadius="5dp"
             Android:bottomRightRadius="5dp"
             Android:topRightRadius="0dp" />

    <!-- Optional, fill the rest of your background with a color or gradient, use transparent if you only want the border to be displayed-->
    <gradient Android:startColor="@Android:color/transparent"
              Android:endColor="@Android:color/transparent"
              Android:angle="90"/>
</shape>
  1. ウィジェットの背景を、作成したばかりのドローアブル構成に設定します

例えば。ボーダーを相対レイアウトに配置する場合:

<RelativeLayout            
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:background="@drawable/background_border"
            Android:padding="15dp">
    ...
</RelativeLayout>
50
RWIL
RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.borderEffect); // id fetch from xml
ShapeDrawable rectShapeDrawable = new ShapeDrawable(); // pre defined class

// get Paint
Paint Paint = rectShapeDrawable.getPaint();

// set border color, stroke and stroke width
Paint.setColor(Color.GRAY);
Paint.setStyle(Style.STROKE);
Paint.setStrokeWidth(5); // you can change the value of 5
layout.setBackgroundDrawable(rectShapeDrawable);
12

ボーダーの背景色とボーダー幅のマージンまたはパディングを取得するFrameLayoutを作成し、そのFrameLayoutをRelativeLayoutに配置します。 TextViewを直接RelativeLayoutではなく、FrameLayoutに配置します。 poofインスタント境界。

1
mah