购物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 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2625
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5346
来自专栏落花落雨不落叶

canvas画简单电路图

60311
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2537
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2020
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2142
来自专栏魂祭心

原 canvas绘制clock

4044
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏hbbliyong

WPF Trigger for IsSelected in a DataTemplate for ListBox items

<DataTemplate DataType="{x:Type vm:HeaderSlugViewModel}"> <vw:HeaderSlug...

4054

扫码关注云+社区