购物APP项目开发(1)——菜单开发

1.导入资源文件 图片文件一般都是放在Drawable下面。

不过这里要创建一个Drawable-xhdpi。

2.项目分层 提高扩展性和维护性 以及提高代码的复用。

包名 com.lqc.项目名称 http://www.lqc.com

activity 窗口

service 业务层 处理系统业务的代码

util 工具包

dto 数据传输对象

adapter 适配器

3.欢迎界面开发

在activity中新建一个WelcomeActivity.java

public class WelcomeActivity extends Activity { private Handler handler=new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { Intent intent=new Intent(WelcomeActivity.this,MainActivity.class); startActivity(intent); return false; } }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); // 停留3s自动调整到主界面 // 停留3s发送一个0x111消息 handler.sendEmptyMessageDelayed(0x111,3000); } @Override protected void onStop() { super.onStop(); WelcomeActivity.this.finish(); } }

4.开发界面菜单栏

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" tools:context="com.lqc.shopping.activity.MainActivity"> <!-- layout_weight : 权重 --> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1"> </android.support.v4.view.ViewPager> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/dark_black"> </View> <!-- 菜单栏 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- 主页--> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/ll1" android:gravity="center" android:layout_weight="1"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/guide_home_on" android:id="@+id/img1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/orange" android:text="@string/home_text" android:id="@+id/text1" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:id="@+id/ll2" android:layout_weight="1"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/guide_tfaccount_nm" android:id="@+id/img2" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@string/type_text" android:id="@+id/text2" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:id="@+id/ll3" android:layout_weight="1"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/guide_cart_nm" android:id="@+id/img3" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@string/car_text" android:id="@+id/text3" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:id="@+id/ll4" android:layout_weight="1" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/guide_account_nm" android:id="@+id/img4" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@string/user_text" android:id="@+id/text4" /> </LinearLayout> </LinearLayout> </LinearLayout

在MainActivity.java中:

public class MainActivity extends Activity implements View.OnClickListener{ private int[] menusIds=new int[]{ R.id.ll1, R.id.ll2, R.id.ll3, R.id.ll4 }; private LinearLayout[] menus=new LinearLayout[menusIds.length]; private ImageView[] menuImages=new ImageView[menusIds.length]; private int[] menuImageids=new int[]{ R.id.img1, R.id.img2, R.id.img3, R.id.img4, }; private TextView[] menuTexts=new TextView[menusIds.length]; private int[] menuTextids=new int[]{ R.id.text1, R.id.text2, R.id.text3, R.id.text4 }; private int[] menuOpenImages=new int[]{ R.drawable.guide_home_on, R.drawable.guide_discover_on, R.drawable.guide_cart_on, R.drawable.guide_account_on }; private int[] menuCloseImages=new int[]{ R.drawable.guide_home_nm, R.drawable.guide_discover_nm, R.drawable.guide_cart_nm, R.drawable.guide_account_nm }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i=0;i<menusIds.length;i++){ menus[i]= (LinearLayout) findViewById(menusIds[i]); menuImages[i]= (ImageView) findViewById(menuImageids[i]); menuTexts[i]= (TextView) findViewById(menuTextids[i]); /** 给四个线性按钮绑定点击事件监听器 */ menus[i].setOnClickListener(this); } } @Override public void onClick(View v) { /** 每次点击的时候将所有的图片按钮和问文本都恢复成灰黑色 */ for (int i=0;i<menusIds.length;i++){ menuImages[i].setImageResource(menuCloseImages[i]); menuTexts[i].setTextColor(0xff000000 ); } switch (v.getId()){ case R.id.ll1: menuImages[0].setImageResource(menuOpenImages[0]); menuTexts[0].setTextColor(0xffff5000); break; case R.id.ll2: menuImages[1].setImageResource(menuOpenImages[1]); menuTexts[1].setTextColor(0xffff5000); break; case R.id.ll3: menuImages[2].setImageResource(menuOpenImages[2]); menuTexts[2].setTextColor(0xffff5000); break; case R.id.ll4: menuImages[3].setImageResource(menuOpenImages[3]); menuTexts[3].setTextColor(0xffff5000); break; } } }

这样就可以完成菜单开发了。

原文发布于微信公众号 - Java后端生活(javaNotebook)

原文发表时间:2016-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏yang0range

Activity详解(一)——典型生命周期分析

Activity的重要性,在Android的开发当中不言而喻,作为四大组件当中,使用最为频繁的组件,有必要对它进行一个全方面的了解和认识,下面我们通过一系列的文...

772
来自专栏CodingBlock

Android开发必知--自定义Toast提示

  开发过Android的童鞋都会遇到一个问题,就是在打印Toast提示时,如果短时间内触发多个提示,就会造成Toast不停的重复出现,直到被触发的Toast全...

2195
来自专栏分享达人秀

Fragment显示和隐藏、绑定和解绑

在上一期我们学习了FragmentManager和FragmentTransaction的作用,并用案例学习了Fragment的添加、移除和替换,本期一...

4517
来自专栏Android干货

Android项目实战(七):Dialog主题Activity实现自定义对话框效果

3378
来自专栏Android中高级开发

Android开发之漫漫长途 XIII——Fragment最佳实践

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索...

952
来自专栏刘望舒

WebView想说爱你不容易啊

随着app业务的不断深入发展,只靠着原生代码来堆砌功能是不现实,毕竟开发的时长会增加,而且同时需要开发iOS和Android两套,并且,如果在UI上改变了一丁点...

612
来自专栏水击三千

Android学习自定义Dialog

Dialog是Android提供的各种对话框的基类,和上篇的DialogFragment类似。为什么还要介绍Dialog呢,因为DialogFragment只能...

2939
来自专栏刘望舒

Android View体系(九)自定义View

相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属...

19310
来自专栏codelang

打造万能的EmptyLayout

1222
来自专栏Android Note

Toolbar悬停搜索框

1622

扫码关注云+社区