0

説明のために写真の上に半透明のテキストボックスを重ねようとしています。画面をタップすると上下にスライドします。また、下部に評価バーが含まれている必要があります。

Google ゴーグルとよく似ていますhttp://blogote.com/wp-content/uploads/2010/10/GoogleGoggles1.jpg

どのようにしますか?これは私がこれまでに持っているものです:

<FrameLayout 
    android:id="@+id/mainlayout" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical" 
    android:foregroundGravity="bottom"
    xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView
    android:id="@+id/imgview" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<TextView 

    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="@string/hello"/>
</FrameLayout>
4

2 に答える 2

2

RelativeLayoutこれは、とSlidingDrawerウィジェットを使用して簡単に実装できます。

  1. 引き出しをレイアウトの下部に取り付けて、写真のRelativeLayout上で開くことができるようにするために必要です。
  2. SlidingDrawerウィジェットには と の2 つの必須プロパティがandroid:handleありandroid:contentます。きれいなレイアウトの場合、おそらくこれらを別のレイアウト ファイルとして使用することをお勧めします。以下の例では簡単にするために、同じ XML レイアウトに含まれています。
  3. 背景の不透明度は単純android:backgroundです。プロパティを ARGB (アルファ RGB) 値として渡すだけです。以下は、約75%の不透明度で黒の「#BF000000」を使用しています。
  4. 最後のステップは、ハンドルを非表示にして、イベント ハンドラーを および に追加することImageViewですSlidingDrawer

キックのために、ここに完全に機能する例があります...

レイアウト XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                >
<ImageView android:id="@+id/image" 
           android:src="@drawable/bunnywaffles"
           android:layout_width="fill_parent" 
           android:layout_height="fill_parent"
           android:layout_alignParentTop="true"
           />
<SlidingDrawer android:id="@+id/SlidingDrawer" 
               android:handle="@+id/slideHandleButton" 
               android:content="@+id/contentLayout"
               android:layout_width="fill_parent"
               android:layout_height="150dip"
               android:layout_alignParentBottom="true" >
    <Button android:id="@+id/slideHandleButton"
            android:layout_width="0dip" 
            android:layout_height="0dip"
            android:visibility="gone"
            />
    <LinearLayout android:id="@+id/contentLayout"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"  
                  android:orientation="vertical" 
                  android:gravity="center" 
                  android:background="#BF000000">
        <LinearLayout android:layout_width="fill_parent"
                      android:layout_height="wrap_content"
                      android:gravity="center">
            <Button android:id="@+id/Button01" 
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content" 
                    android:text="Button1" 
                    />
            <Button android:id="@+id/Button02" 
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content" 
                    android:text="Button2" 
                    />
        </LinearLayout>
        <RatingBar android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:numStars="5" />
    </LinearLayout>
</SlidingDrawer>
</RelativeLayout>

そしてあなたの活動 Java:

ImageView _image;
SlidingDrawer _drawer;
Boolean _drawerOpen = false;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    _image = (ImageView) findViewById( R.id.image );
    _image.setOnClickListener(ToggleDrawer);

    _drawer = (SlidingDrawer) findViewById( R.id.SlidingDrawer );
    _drawer.setOnClickListener(ToggleDrawer);
}

private View.OnClickListener ToggleDrawer = new View.OnClickListener() {
    public void onClick(View view) {
        if ( _drawerOpen )
            _drawer.animateClose();
        else
            _drawer.animateOpen();
        _drawerOpen = !_drawerOpen;
    }
};
于 2011-03-03T21:57:15.880 に答える
1

このリンク は、透明な背景色の作成に関するアイデアを提供します。ここ#BF000000です。

于 2012-04-13T19:01:15.333 に答える