任何皮肤选择器Android库

时间:2016-10-29 08:59:10

标签: android android-layout

是否有任何安卓程序库:

  1. 在网格或滚动视图中显示可绘制的内容。
  2. 允许用户选择其中一个图像并显示他的选择。
  3. 允许我获取所选的drawable并将其显示给用户。
  4. 请参阅屏幕截图,看看我想要实现的目标。

    enter image description here

    enter image description here

1 个答案:

答案 0 :(得分:0)

我做过你正在考虑的事情。我会告诉你,如果对你有用(我想会,但你必须适应这一点):

背景:我创建了一个基于太空入侵者的简单游戏。我的游戏有一个主菜单(主要活动),玩家可以按“播放”或扫描选择一些“选项”,但弹出窗口。

App main menu image

1 屏幕:主菜单。 2 屏幕:当我按下“选项”按钮时会出现弹出窗口。这个弹出窗口让我选择图形选项(改变游戏背景,盟友宇宙飞船模型和敌人spaship模型)。

  

MainActivity.java

optionBoton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        soundMenu.start();
        LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
        View viewPopup = inflater.inflate(R.layout.popup_activity, null);
        popup = new PopupWindow(
            viewPopup,
            RelativeLayout.LayoutParams.MATCH_PARENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT
        );
        popup.showAtLocation(layoutPrincipal, Gravity.BOTTOM, 0, 0);
        ImageButton closePop = (ImageButton) vistaPopup.findViewById(R.id.volver_boton);
        closePop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                soundMenu.start();
                popup.dismiss();
                optionBoton.setVisibility(View.VISIBLE);
            }
        });
        optionBoton.setVisibility(View.INVISIBLE);
    }
});

此代码将在onCreate方法中。

现在,您需要设计自己的XML弹出窗口(如果您决定创建弹出窗口)。显示弹出窗口是一种简单,干净,动态的方式来更改图形选项。

  

popup_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#839ceaac"
    android:orientation="vertical">

    <ImageButton
        android:id="@+id/volver_boton"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:layout_marginRight="2dp"
        android:layout_marginTop="3dp"
        android:background="@android:color/transparent"
        android:scaleType="centerCrop"
        android:src="@drawable/wcerrar" />

    <TextView
        android:id="@+id/options_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="6dp"
        android:layout_marginTop="5dp"
        android:text="Opciones gráficas"
        android:textSize="20dp"
        android:textStyle="bold" />

    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:layout_below="@id/options_title"
        android:background="#9dc8a6" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/options_title"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="5dp"
        android:orientation="horizontal">

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <TextView
                android:id="@+id/back_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:text="Fondo"
                android:textSize="15sp"
                android:textStyle="bold" />

            <ImageView
                android:id="@+id/back_1"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/back_title"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadBack"
                android:scaleType="centerCrop"
                android:src="@drawable/fondo" />

            <ImageView
                android:id="@+id/back_2"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/back_1"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadBack"
                android:scaleType="centerCrop"
                android:src="@drawable/fondo1" />

            <ImageView
                android:id="@+id/back_3"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/back_2"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadBack"
                android:scaleType="centerCrop"
                android:src="@drawable/fondo3" />

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <TextView
                android:id="@+id/spaceship_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:text="Spaceship"
                android:textSize="15sp"
                android:textStyle="bold" />

            <ImageView
                android:id="@+id/spaceship_1"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/spaceship_title"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadSpaceship"
                android:src="@drawable/diseno11" />

            <ImageView
                android:id="@+id/spaceship_2"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/spaceship_1"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadSpaceship"
                android:src="@drawable/diseno21" />

            <ImageView
                android:id="@+id/spaceship_3"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/spaceship_2"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadSpaceship"
                android:src="@drawable/diseno31" />

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <TextView
                android:id="@+id/enemy_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:text="Enemies"
                android:textSize="15sp"
                android:textStyle="bold" />

            <ImageView
                android:id="@+id/enemy_1"
                android:layout_width="40dp"
                android:layout_height="60dp"
                android:layout_below="@id/enemy_title"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="3dp"
                android:adjustViewBounds="true"
                android:onClick="uploadEnemy"
                android:rotation="180"
                android:src="@drawable/enemigodiseno11" />

            <ImageView
                android:id="@+id/enemy_2"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_below="@id/enemy_1"
                android:layout_marginBottom="3dp"
                android:layout_centerHorizontal="true"
                android:src="@drawable/enemigodiseno21"
                android:onClick="uploadEnemy"/>

        </RelativeLayout>

    </LinearLayout>

</RelativeLayout>

无论如何,如果你选择不使用弹出窗口,我会告诉你如何将一些数据发送到Android开发中的另一个活动:

  1. 当您按下图形选项时,请查看“android:onclick”调用。这允许调用java方法来捕获所选的选项。
  2. 看一个简单的例子:
  3. 方法示例

    public void uploadBack(View view) {
        switch (view.getId()) {
            case R.id.back_1:
                result[0] = "back";
                break;
            case R.id.back_2:
                result[0] = "back1";
                break;
            case R.id.back_3:
                result[0] = "back3";
                break;
        }
    }
    

    正如你所看到的,我有一系列有3个位置的字符串。当我单击ImageView时,我调用方法改变结果[i]值。当我按“播放”并调用游戏活动时,我使用putExtra方法发送这些选项并更改游戏设置。

    我希望这可以帮助解决您的问题。

    度过美好的一天!