由于前两天忙于学校的实习,就断了两三天没有学习android,今天实习结束,又可以继续了。
下面我将给出进入主页面的entryHome函数的实现以及使用gridView布局功能界面
entryHome函数实现
/**
* 进入主页面
*/
private void enterHome() {
Intent intent = new Intent(this, HomeActivity.class);
this.startActivity(intent);
/*关闭当前页面*/
finish();
}
主界面预览图
这里先给出主界面功能图标的实现过程,展示最新信息的跑马灯我将独立出一篇单独给出(使用自定义),希望对跟我一样刚入门android的同学有所帮助
提前给出一些GridView 的属性功能介绍
属性名称
描述
android:columnWidth
设置列的宽度。
android:gravity
设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。
android:horizontalSpacing
两列之间的间距。
android:numColumns
设置列数。
android:stretchMode
缩放模式。
android:verticalSpacing
两行之间的间距。
功能界面布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:theme="@style/AppTheme.NoActionBar">
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="55dip"
android:background="@android:color/holo_green_dark"
android:gravity="center"
android:text="功能列表"
android:textColor="@android:color/black"
android:textSize="22sp" />
//此处为实现跑马灯效果的消息展示,后面将独立讲解 <com.zaizai.safty.ui.FocusedTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusableInTouchMode="true" android:singleLine="true" android:text="最新的仔仔手机安全卫士,快来下载啊,下载送好吃的。最新的仔仔手机安全卫士,快来下载啊,下载送好吃的。最新的仔仔手机安全卫士,快来下载啊,下载送好吃的。" android:textSize="18sp" />
//GridView展示的单个Itme将使用自定义的样式进行展示 <GridView android:id="@+id/gv_list_home" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numColumns="3" android:verticalSpacing="10dip" /> </LinearLayout>
//GridView 中的Itme样式布局文件如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> mipmap-hdpi/app.png <ImageView android:id="@+id/iv_item" android:layout_width="60dip" android:layout_height="60dip" android:src="@drawable/app" /> <TextView android:id="@+id/tv_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机防盗" android:textSize="16sp" /> </LinearLayout>
即上面用一个ImageView展示功能的图标,这里的src只是为了阅览调试布局配置,实际运行将动态加载,下面为一个TextView展示功能名称
下面我将贴出整个功能界面的Activity然后在代码中使用注释进行分步讲解
package com.zaizai.safty; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; /** * Created by zaizai on 2015/10/12. */ public class HomeActivity extends Activity { private GridView gv_list_home; private MyAdapter myAdapter;
//分别定义出9个功能的名称 private static String[] names = { "手机防盗", "通讯卫士", "软件管理", "进程管理", "流量统计", "手机杀毒", "缓存清理", "高级工具", "设置中心" };
//由于我使用的是android studio 所以我将9个功能的图标的图片文件放入mipmap-mdp中
//仍然时定义一个数组,数组存储的是图片的引用整型变量,整型变量所引用的值才是图片的路径 private static int[] ids = {R.mipmap.safe, R.mipmap.callmsgsafe, R.mipmap.app, R.mipmap.taskmanager , R.mipmap.netmanager, R.mipmap.trojan, R.mipmap.sysoptimize, R.mipmap.atools, R.mipmap.settings }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
//加载布局文件 this.setContentView(R.layout.activity_home);
//得到GirdView gv_list_home = (GridView) this.findViewById(R.id.gv_list_home);
//创建一个数据适配器,在后面定义 myAdapter = new MyAdapter();
//给GirdView 设置数据适配器 gv_list_home.setAdapter(myAdapter); /*设置主页面功能图标的的点击事件*/ gv_list_home.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { switch (position) { //根据position即可知道点击了第几个功能图标 } } }); } private class MyAdapter extends BaseAdapter { @Override public int getCount() { return names.length; } @Override public View getView(int position, View convertView, ViewGroup parent) {
//将GridView 的Itme项的布局文件加载到功能页面视图中 View view = View.inflate(HomeActivity.this, R.layout.list_item_home, null);
//得到显示功能图标的imageView ImageView iv_item = (ImageView) view.findViewById(R.id.iv_item);
//得到显示功能名称的TextView TextView tv_item = (TextView) view.findViewById(R.id.tv_item);
//position代表第几个功能项,从0开始,我们将对应的存储功能名称的数组赋值给它即可 tv_item.setText(names[position]);
//与上面相同 iv_item.setImageResource(ids[position]); return view; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } } }
到这里即完成了功能界面图标展示功能
后面将给出跑马灯效果的消息展示横幅的实现过程
来源:oschina
链接:https://my.oschina.net/u/2368910/blog/513328