トップバーと画像を含む画面を作りたい。トップバーにはTextViewを使用し、画像にはImageViewを使用しています。画像ビューのみにパディングを設定したい。私のxmlは以下のとおりです。パディングアクションが機能していません。誰かが理由と何をすべきかを説明できますか?
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/background" >
<TextView Android:id="@+id/topBar"
Android:layout_width="match_parent"
Android:layout_height="50dp"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:text="@string/home"
Android:textSize="20sp"
Android:textColor="#ffffff"
Android:textStyle="bold"
Android:shadowColor="#000000"
Android:shadowRadius="1"
Android:shadowDy="-1"
Android:gravity="center"
Android:background="@drawable/navBar"/>
<ImageView Android:id="@+id/image"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:paddingLeft="10dp"
Android:paddingTop="10dp"
Android:paddingRight="10dp"
Android:paddingBottom="10dp"
Android:layout_below="@+id/topBar"
Android:background="@drawable/image"/>
</RelativeLayout>
padding
の代わりにlayout_margin
を使用する必要があるため、次のようになります。
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/background" >
<TextView Android:id="@+id/topBar"
Android:layout_width="match_parent"
Android:layout_height="50dp"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:text="@string/home"
Android:textSize="20sp"
Android:textColor="#ffffff"
Android:textStyle="bold"
Android:shadowColor="#000000"
Android:shadowRadius="1"
Android:shadowDy="-1"
Android:gravity="center"
Android:background="@drawable/navBar"/>
<ImageView Android:id="@+id/image"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:layout_marginTop="10dp"
Android:layout_marginRight="10dp"
Android:layout_marginBottom="10dp"
Android:layout_below="@+id/topBar"
Android:background="@drawable/image"/>
使用する代わりに、すべての方向に1 layout_margin
を指定できます。
Android:layout_marginLeft="10dp"
Android:layout_marginTop="10dp"
Android:layout_marginRight="10dp"
Android:layout_marginBottom="10dp"
使用できます:
Android:layout_margin="10dip"
これがあなたが探しているものであることを願っています。それ以外の場合はフィードバックをください;)
更新
cropToPadding も設定できます:
<ImageView
...
Android:cropToPadding="true"
Android:padding="15dp"
Android:scaleType="centerInside"
...
ImageViewで使用
Android:src="@drawable/image"
の代わりに
Android:background="@drawable/image"
srcタグはパディングを尊重しますが、backgroundタグはそうではありません。場合によっては、特に。クリック可能なアイコンでは、パディングはビューに属し、クリック領域が大きくなるため、パディングの代わりにlayout_marginを使用することはお勧めできません。
これに対する唯一の解決策は、imageviewを別のコンテナに追加することです。
<FrameLayout
Android:layout_width="40dp"
Android:layout_height="40dp"
Android:layout_gravity="center"
Android:layout_marginRight="10dp"
Android:padding="10dp" >
<ImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="center"
Android:background="@drawable/ic_delete_blue" />
</FrameLayout>