これは私のレイアウトで、これまで何も成功していませんでした
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@color/white">
<LinearLayout
Android:id="@+id/lltest"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:layout_centerHorizontal="true">
<ImageView
Android:id="@+id/inside_imageview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="5dip"
Android:layout_marginBottom="5dip"
Android:src="@drawable/frame"/>
</LinearLayout>
<ImageView
Android:id="@+id/outside_imageview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignTop="@id/inside_imageview"
Android:scaleType="fitXY"/>
</RelativeLayout>
私が正確に欲しいのは、outside_imageviewをinside_imageviewの上に正確な高さと幅で持つことです...レイアウトを通してそれを行う方法は?
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@color/white" >
<ImageView
Android:id="@+id/inside_imageview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginBottom="5dip"
Android:layout_marginTop="5dip"
Android:src="@drawable/frame" />
<ImageView
Android:id="@+id/outside_imageview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignTop="@id/inside_imageview"
Android:layout_alignBottom="@id/inside_imageview"
Android:layout_alignLeft="@id/inside_imageview"
Android:layout_alignRight="@id/inside_imageview"
Android:scaleType="fitXY" />
</RelativeLayout>
RelativeLayout
のlayout_align[Top|Bottom|Left|Right]
属性は、マージン内のそれぞれのxおよびy値に基づいてビューを整列するために使用されます。 2番目のImageView
は、マージンに基づいて最初のImageView
の上部、下部、左、および右に揃えられます。配置ではパディングは無視されます。
FrameLayout
が必要です。 FrameLayout
である親レイアウトも単にマージできます。 Android Developers Blogをご覧ください: http://Android-developers.blogspot.it/2009/03/Android-layout -tricks-3-optimize-by.html
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="center">
<ImageView
Android:id="@+id/outside_imageview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:scaleType="fitXY"/>
<ImageView
Android:id="@+id/inside_imageview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="5dip"
Android:layout_marginBottom="5dip"
Android:src="@drawable/frame" />
</merge>
FrameLayout
を試してください。 FrameLayout内では、すべての子が互いの上にあります。
私はこの方法を試してみましたが、うまくいきました
<FrameLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:padding="5dip">
<ImageView
Android:id="@+id/image_first"
Android:orientation="vertical"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/imga"/>
<ImageView
Android:id="@+id/imageview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:src="@drawable/image"/>
</FrameLayout>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:padding="@dimen/_15dp">
<ImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:padding="@dimen/_10dp"
Android:layout_marginTop="@dimen/_50dp"
Android:background="@drawable/white_background"
/>
<ImageView
Android:layout_width="@dimen/_100dp"
Android:layout_height="@dimen/_100dp"
Android:background="@drawable/my_credit"
Android:layout_marginTop="@dimen/_5dp"
Android:layout_centerHorizontal="true"
/>
</RelativeLayout>