Android开发之如何实现Metro风格菜单

来源:爱站网时间:2022-10-08编辑:网友分享
本文给大家讲述了关于“Android开发之如何实现Metro风格菜单”的详细内容,如果你对这方面比较感兴趣的话,不妨来看一看爱站技术频道小编所整理的资料,一定不会让你失望的。

今天继续说一下安卓的菜单,之前介绍了:相信大家对于Metro风格并不陌生,下面就在安卓平台上实现一下这个效果,如图:
 
实现思路:
利用动画来实现移动的效果,使用的是TranslateAnimation这个方法。先看一下布局文件:
activity_main.xml

 

 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#000000" 
android:orientation="vertical" > 
<!-- 第一层 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:orientation="horizontal" > 
<!-- 第一层 横向 --> 

<!-- 第一层 横向左 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:orientation="vertical" > 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:orientation="horizontal" > 
<!-- 1 --> 
<RelativeLayout 
android:id="@+id/nine_one" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#FFFF00" > 
</RelativeLayout> 
<!-- 2 --> 
<RelativeLayout 
android:id="@+id/nine_two" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#FFC0CB" > 
</RelativeLayout> 
</LinearLayout> 
<!-- 4 --> 
<RelativeLayout 
android:id="@+id/nine_four" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#EE30A7" > 
</RelativeLayout> 
<!-- 5 --> 
<RelativeLayout 
android:id="@+id/nine_five" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#EE4000" > 
</RelativeLayout> 
</LinearLayout> 
<!-- 第一层 横向右 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="2" 
android:orientation="vertical" > 
<!-- 3 --> 
<RelativeLayout 
android:id="@+id/nine_three" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="2" 
android:background="#FF8C69" > 
</RelativeLayout> 
<!-- 6 --> 
<RelativeLayout 
android:id="@+id/nine_six" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#8C8C8C" > 
</RelativeLayout> 
</LinearLayout> 
</LinearLayout> 
<!-- 第二层 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="3" 
android:baselineAligned="false" 
android:orientation="horizontal" > 
<!-- 7 --> 
<RelativeLayout 
android:id="@+id/nine_seven" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#8B3E2F" > 
</RelativeLayout> 
<!-- 8 --> 
<!-- 9 --> 
<RelativeLayout 
android:id="@+id/nine_nine" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#A52A2A" > 
</RelativeLayout> 
</LinearLayout> 
</LinearLayout> 
 


它的效果是这样的:

之后在MainActivity里面对每一个Layout进行动画移动就可以实现平移的效果了。
MainActivity.java:

 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#000000" 
android:orientation="vertical" > 
<!-- 第一层 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:orientation="horizontal" > 
<!-- 第一层 横向 --> 

<!-- 第一层 横向左 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:orientation="vertical" > 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:orientation="horizontal" > 
<!-- 1 --> 
<RelativeLayout 
android:id="@+id/nine_one" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#FFFF00" > 
</RelativeLayout> 
<!-- 2 --> 
<RelativeLayout 
android:id="@+id/nine_two" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#FFC0CB" > 
</RelativeLayout> 
</LinearLayout> 
<!-- 4 --> 
<RelativeLayout 
android:id="@+id/nine_four" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#EE30A7" > 
</RelativeLayout> 
<!-- 5 --> 
<RelativeLayout 
android:id="@+id/nine_five" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#EE4000" > 
</RelativeLayout> 
</LinearLayout> 
<!-- 第一层 横向右 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="2" 
android:orientation="vertical" > 
<!-- 3 --> 
<RelativeLayout 
android:id="@+id/nine_three" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="2" 
android:background="#FF8C69" > 
</RelativeLayout> 
<!-- 6 --> 
<RelativeLayout 
android:id="@+id/nine_six" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#8C8C8C" > 
</RelativeLayout> 
</LinearLayout> 
</LinearLayout> 
<!-- 第二层 --> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="3" 
android:baselineAligned="false" 
android:orientation="horizontal" > 
<!-- 7 --> 
<RelativeLayout 
android:id="@+id/nine_seven" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#8B3E2F" > 
</RelativeLayout> 
<!-- 8 --> 
<!-- 9 --> 
<RelativeLayout 
android:id="@+id/nine_nine" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_weight="1" 
android:background="#A52A2A" > 
</RelativeLayout> 
</LinearLayout> 
</LinearLayout> 
 


虽然效果还可以,但是布局文件由于使用嵌套,这样毁造成绘制窗口时性能的问题。所以你对程序要求很严格,那么建议使用RelativewLayout来布局,并且减少使用嵌套。
Android开发之如何实现Metro风格菜单内容不知道朋友们都看明白了吗?在我们爱站技术频道网站有很多精彩的技术文章内容,喜欢记得来关注收藏下。

上一篇:Android开发之Handler Runnable与Thread有什么不同

下一篇:Android执行shell命令的详细介绍

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载