私はこれを見た subject Android textviewの周りにボーダーを配置することについて、そして私はそれを使用しました。しかし、今、私は相対レイアウトに配置されています。
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>
例えば。ボーダーを相対レイアウトに配置する場合:
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/background_border"
Android:padding="15dp">
...
</RelativeLayout>
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);
ボーダーの背景色とボーダー幅のマージンまたはパディングを取得するFrameLayoutを作成し、そのFrameLayoutをRelativeLayoutに配置します。 TextViewを直接RelativeLayoutではなく、FrameLayoutに配置します。 poofインスタント境界。