0

我需要创建一个对话框,其中包含一个简单的方形 ImageButtons(如图标)矩阵,数量未知,还有一个取消按钮。对话框应该以编程方式充气和滚动。

我真的很困惑:我应该创建一个自定义布局并将其应用于 AlertDialog 吗?我怎么能拦截点击?我应该使用 PopUpWiew 吗?我是否应该将其设为活动?

如果我创建一个新的 Activity ......我应该使用 Runnable 吗?请不要向我提供完整的来源,我只需要了解满足此需求的正确方向是什么。

先感谢您。

4

1 回答 1

0

您可以使用对话框并将布局文件设置为它。对话框类似于迷你活动,可以调用到实际活动并随意关闭。

让它成为自定义布局文件 - customLayout.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/bg"
tools:context=".AutoMode" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_above="@+id/relativeLayout2"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/button1"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/blue_gradient"
        android:layout_alignRight="@+id/relativeLayout1"
        android:layout_alignTop="@+id/relativeLayout1"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/black_gradient"
        android:layout_alignTop="@+id/relativeLayout1"
        android:layout_toRightOf="@+id/button1"/>

    <Button
        android:id="@+id/button3"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:layout_toRightOf="@+id/button2"
        android:background="@drawable/red_gradient" />

</RelativeLayout>

 <RelativeLayout
    android:id="@+id/relativeLayout2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >

    <Button
        android:id="@+id/button4"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/yellow_gradient"
        android:layout_alignRight="@+id/relativeLayout2"
        android:layout_alignTop="@+id/relativeLayout2" />

    <Button
        android:id="@+id/button5"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/metallic_gradient"
        android:layout_alignTop="@+id/relativeLayout2"
        android:layout_toRightOf="@+id/button4" />

    <Button
        android:id="@+id/button6"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/purple_gradient"
        android:layout_alignTop="@+id/relativeLayout2"
        android:layout_toRightOf="@+id/button5"/>

</RelativeLayout>

 <RelativeLayout
    android:id="@+id/relativeLayout3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_below="@+id/relativeLayout2"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/button7"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/green_gradient"
        android:layout_alignRight="@+id/relativeLayout3"
        android:layout_alignTop="@+id/relativeLayout3" />

    <Button
        android:id="@+id/button8"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/orange_gradient"
        android:layout_alignTop="@+id/relativeLayout3"
        android:layout_toRightOf="@+id/button7" />

    <Button
        android:id="@+id/button9"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/violet_gradient"
        android:layout_alignTop="@+id/relativeLayout3"
        android:layout_toRightOf="@+id/button8" />

</RelativeLayout>

以下是如何将此布局设置为要调用它的活动中的对话框:

final Dialog customDialog = new Dialog(this);
    customDialog.setTitle("Matrix");
    disclaimer.setContentView(R.layout.customLayout);
      Button b1 = (Button) customDialog.findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            //Do whatever you want when button1 is clicked
        }
    });
.
.//same for other buttons
.
Button b9 = (Button) customDialog.findViewById(R.id.button9)
b9.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            //Do whatever you want when button9 is clicked
        }
    });
    Button close = (Button) customDialog.findViewById(R.id.dismiss);
    customDialog.show();
    close.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            disclaimer.dismiss();
        }
    });
于 2013-01-12T18:03:18.107 回答