本文实例讲述了Android编程实现仿优酷旋转菜单效果。分享给大家供大家参考,具体如下:
首先,看下效果:
不好意思,不会制作动态图片,只好上传静态的了,如果谁会,请教教我吧。
首先,看下xml文件:
<?xml version=\"1.0\" encoding=\"utf-8\"?> <RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" android:background=\"#c9c9c9\" > <RelativeLayout android:id=\"@+id/relate_level3\" android:layout_width=\"280dp\" android:layout_height=\"140dp\" android:layout_alignParentBottom=\"true\" android:layout_centerHorizontal=\"true\" android:background=\"@drawable/level3\" > <ImageButton android:id=\"@+id/c1\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignParentBottom=\"true\" android:layout_marginBottom=\"6dip\" android:layout_marginLeft=\"12dip\" android:background=\"@drawable/channel1\" /> <ImageButton android:id=\"@+id/c2\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_above=\"@+id/c1\" android:layout_marginBottom=\"12dip\" android:layout_marginLeft=\"28dip\" android:background=\"@drawable/channel2\" /> <ImageButton android:id=\"@+id/c3\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_above=\"@+id/c2\" android:layout_marginBottom=\"8dip\" android:layout_marginLeft=\"6dip\" android:layout_toRightOf=\"@+id/c2\" android:background=\"@drawable/channel3\" /> <ImageButton android:id=\"@+id/c4\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_centerHorizontal=\"true\" android:layout_margin=\"6dip\" android:background=\"@drawable/channel4\" /> <ImageButton android:id=\"@+id/c5\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_above=\"@+id/c6\" android:layout_marginBottom=\"8dip\" android:layout_marginRight=\"6dip\" android:layout_toLeftOf=\"@+id/c6\" android:background=\"@drawable/channel5\" /> <ImageButton android:id=\"@+id/c6\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_above=\"@+id/c7\" android:layout_alignParentRight=\"true\" android:layout_marginBottom=\"12dip\" android:layout_marginRight=\"28dip\" android:background=\"@drawable/channel6\" /> <ImageButton android:id=\"@+id/c7\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignParentBottom=\"true\" android:layout_alignParentRight=\"true\" android:layout_marginBottom=\"6dip\" android:layout_marginRight=\"12dip\" android:background=\"@drawable/channel7\" /> </RelativeLayout> <RelativeLayout android:id=\"@+id/relate_level2\" android:layout_width=\"180dp\" android:layout_height=\"90dp\" android:layout_alignParentBottom=\"true\" android:layout_centerHorizontal=\"true\" android:background=\"@drawable/level2\" > <ImageButton android:id=\"@+id/menu\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_centerHorizontal=\"true\" android:layout_margin=\"6dip\" android:background=\"@drawable/icon_menu\" /> <ImageButton android:id=\"@+id/search\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignParentBottom=\"true\" android:layout_margin=\"10dip\" android:background=\"@drawable/icon_search\" /> <ImageButton android:id=\"@+id/myyouku\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignParentBottom=\"true\" android:layout_alignParentRight=\"true\" android:layout_margin=\"10dip\" android:background=\"@drawable/icon_myyouku\" /> </RelativeLayout> <RelativeLayout android:id=\"@+id/relate_level1\" android:layout_width=\"100dp\" android:layout_height=\"50dp\" android:layout_alignParentBottom=\"true\" android:layout_centerHorizontal=\"true\" android:background=\"@drawable/level1\" > <ImageButton android:id=\"@+id/home\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignParentBottom=\"true\" android:layout_centerHorizontal=\"true\" android:layout_marginBottom=\"10dp\" android:background=\"@drawable/icon_home\" /> </RelativeLayout> </RelativeLayout>
大家看到主要有三个RalativeLayout,就是大家看到的三层,但是关于图片的倾斜 是怎样实现的呢?实际上是个假象,图片是正放的,里面图像是倾斜的。如下图:
这样大概能明白,下面就是开始动画效果了,先看下主Activity:
public class TestYoukuActivity extends Activity { /** Called when the activity is first created. */ private boolean areLevel2Showing = true, areLevel3Showing = true; private RelativeLayout relate_level2, relate_level3; private ImageButton home, menu; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViews(); setListener(); } private void findViews() { relate_level2 = (RelativeLayout) findViewById(R.id.relate_level2); relate_level3 = (RelativeLayout) findViewById(R.id.relate_level3); home = (ImageButton) findViewById(R.id.home); menu = (ImageButton) findViewById(R.id.menu); } private void setListener() { // 给大按钮设置点击事件 home.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (!areLevel2Showing) { MyAnimation.startAnimationsIn(relate_level2, 500); } else { if (areLevel3Showing) { MyAnimation.startAnimationsOut(relate_level2, 500, 500); MyAnimation.startAnimationsOut(relate_level3, 500, 0); areLevel3Showing = !areLevel3Showing; } else { MyAnimation.startAnimationsOut(relate_level2, 500, 0); } } areLevel2Showing = !areLevel2Showing; } }); menu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (!areLevel3Showing) { MyAnimation.startAnimationsIn(relate_level3, 500); } else { MyAnimation.startAnimationsOut(relate_level3, 500, 0); } areLevel3Showing = !areLevel3Showing; } }); } }
应该注意到了:
希望本文所述对大家Android程序设计有所帮助。
本文地址:https://www.stayed.cn/item/8365
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我