Android开发第七天(续)

Damon——层级菜单

eveMenu

主要布局(activity_main.xml)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

 <RelativeLayout
     android:layout_width="100dp"
     android:layout_height="50dp"
     android:background="@drawable/level1"
     android:layout_alignParentBottom="true"
     android:layout_centerHorizontal="true">
     <ImageButton
         android:id="@+id/ib_home"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@drawable/icon_home"
         android:background="@null"
         android:layout_centerInParent="true"/>
 </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl_level2"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@drawable/level2"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true">
        <ImageButton
            android:id="@+id/ib_menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon_menu"
            android:layout_centerHorizontal="true"
            android:background="@null"
            android:layout_marginTop="3dp"/>
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon_search"
            android:layout_alignParentLeft="true"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="3dp"
            android:background="@null"/>
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon_myyouku"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="3dp"
            android:background="@null"/>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl_level3"
    android:layout_width="300dp"
    android:layout_height="150dp"
    android:background="@drawable/level3"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true">

        <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="130dp"
        android:background="@null"
        android:src="@drawable/channel1" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="187dp"
            android:layout_marginBottom="91dp"
            android:background="@null"
            android:src="@drawable/channel5" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="1dp"
            android:layout_marginBottom="1dp"
            android:background="@null"
            android:src="@drawable/channel2" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="253dp"
            android:layout_marginBottom="-1dp"
            android:background="@null"
            android:src="@drawable/channel3" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="233dp"
            android:layout_marginBottom="56dp"
            android:background="@null"
            android:src="@drawable/channel4" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="20dp"
            android:layout_marginBottom="56dp"
            android:background="@null"
            android:src="@drawable/channel6" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="77dp"
            android:layout_marginBottom="91dp"
            android:background="@null"
            android:src="@drawable/channel7" />
</RelativeLayout>

</RelativeLayout>

主要实现(MainActivity.java)

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    //记录第三次菜单的状态
    private boolean isLevel3Open = true;
    private boolean isLevel2Open = true;

    private RelativeLayout level3;
    private RelativeLayout level2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //加载容器布局
        level3 = findViewById(R.id.rl_level3);
        level2 = findViewById(R.id.rl_level2);


        //menu按钮
        ImageButton menu = findViewById(R.id.ib_menu);
        ImageButton home = findViewById(R.id.ib_home);
        //添加点击事件
        menu.setOnClickListener(this);
        home.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        //判断哪个按钮被点击
        switch (view.getId()) {
            case R.id.ib_menu:
                if (isLevel3Open) {
                    //关闭
                    close(level3,0);
                } else {
                    //打开
                    open(level3);
                }
                //改变状态
                isLevel3Open = !isLevel3Open;
                break;
            case R.id.ib_home:
                if (isLevel3Open){
                    //关闭第三层菜单
                    close(level3,0);
                    isLevel3Open=false;
                }

                if (isLevel2Open){
                    //关闭第二层菜单
                    close(level2,200);
                }else {
                    //打开第二层菜单
                    open(level2);
                }
                isLevel2Open=!isLevel2Open;
                break;
            default:
                break;
        }
    }

    public void open(RelativeLayout rl) {
        Animation in = AnimationUtils.loadAnimation(
                this, R.anim.rotat_in_anim);
        rl.startAnimation(in);
    }

    public void close(RelativeLayout rl,long delay) {
        Animation out = AnimationUtils.loadAnimation(
                this, R.anim.rotat_out_anim);
        out.setStartOffset(delay);
        rl.startAnimation(out);
    }
}

动画样式

out:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="1000">
    <rotate android:fromDegrees="0"
        android:toDegrees="-180"
        android:pivotX="50%"
        android:pivotY="100%"/>
</set>

in:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="1000">
    <rotate android:fromDegrees="-180"
        android:toDegrees="0"
        android:pivotX="50%"
        android:pivotY="100%"/>
</set>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容