1

Androidレイアウトについてサポートが必要です。私が達成したいのは、灰色のビューの周りのビューが画面サイズとともに拡大し、中央のビューが常に中央に配置されるレイアウトです。画面が小さすぎて、タッチすると左右の灰色のビューの幅が0になるはずです...私はImageviewerを作成しました。灰色の領域は画像で、外側の領域はすべて黒い背景になっています。画面が小さい場合、画像は画面と一致する必要があります。しかし、それが大きくなると、画像は拡大縮小されませんが、その周囲の領域は大きくなるはずです...私が何を意味するのか理解していただければ幸いです。たぶん、水平方向のレイアウトを含む垂直方向の線形レイアウトですか?

ありがとう!

例

4

3 に答える 3

1

これを試して:

  1. RelativeLayoutを使用する
  2. 中央の(灰色の)正方形には、400dpx400dpなどの固定サイズを使用します
  3. 灰色の四角にはandroid:layout_centerInParent="true"を使用します
  4. 上を上に配置し、alignParentTop = true、
  5. 下が下になり、alilgnParentBottom = true
  6. 左:toTheLeft中央左、上下、下上
  7. 右:toTheRight of center、下上、上下

どうぞ:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout
        android:id="@+id/center"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="#343434" />
    <LinearLayout
        android:id="@+id/top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/center"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#ababab" />
    <LinearLayout
        android:id="@+id/left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/center"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/center"
        android:layout_toLeftOf="@+id/center"
        android:background="#cfcfcf" />
    <LinearLayout
        android:id="@+id/right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/left"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/left"
        android:layout_toRightOf="@+id/center"
        android:background="#cfcfcf" />
    <LinearLayout
        android:id="@+id/bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/center"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:background="#ababab" />
</RelativeLayout>
于 2012-12-18T19:21:12.770 に答える
0

あなたが言ったように、その外側のスペースがすべて黒い背景になる場合は、すべてのデバイスで同じままである固定のlayout_widthとlayout_heightを使用して、ImageViewを中央に配置したRelativeLayoutを1つだけ作成してみませんか。背景を黒にしてRelativeLayoutを設定します。この方法の方がパフォーマンスが向上します。実際、画像の周囲に黒い境界線が必要な場合は、他の場所に実際のレイアウトがあることを心配する必要はありません。固定の幅と高さを設定して中央に配置する限り、希望どおりに機能するはずです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerInParent="true"
        android:src="@drawable/apache" />
</RelativeLayout>

そのように。または、本当に具体的にしたい場合は「100px」を使用します。これはお勧めしませんが。

于 2012-12-18T19:35:13.963 に答える
0

さまざまな画面サイズのサイズを設定することで、大画面と小画面を処理できます。たとえば、次のようになります。

values / dimens.xml:

<resources>
    <dimen name="margin"0dp</dimen>
</resources>

値-w480dp/dimens.xml:

<resources>
    <dimen name="margin"3dp</dimen>
</resources>

値-w600dp/dimens.xml:

<resources>
    <dimen name="margin"6dp</dimen>
</resources>

これで、ImageViewで次のようにマージンを設定できます。

android:layout_marginRight/Left="@dimen/margin"

ImageViewをに設定することを忘れないでください

android:gravity="center"

レイアウトがこのImageViewのみで構成されている場合は、マージンを省略して、重力を中央に設定することができます。

于 2012-12-18T19:24:23.490 に答える