Android小项目之十一 应用程序的主界面
按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点也都能说出了123来,但是这些孤立的点终究显得太零散了,因此,我想从今天开始,以最经典的手机安全卫士项目为例,自己锻炼一下,也是想和大家交流交流,希望大家都能给出见解,共同进步。
十一、应用程序的主界面
之前的完成以后,用户每次打开都会有更新提醒,这样对于用户来说是很烦的。用户体验就不是特别好了。
因此我们需要这样一个选项,在用户选择关闭更新提醒的时候,就不会显示提醒,直接进入主界面。
设置中心》设置。。。
下面先做下主界面(LinearLayout):
1.标题:
具体代码:
<TextView
style="@style/text_title_style"
android:text="手机卫士" />
这里我们把TextView的样式抽取到样式文件中,
具体代码:
<style name="text_title_style">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">50dp</item>
<item name="android:gravity">center</item>
<item name="android:background">#8066ff00</item>
<item name="android:textColor">#000000</item>
<item name="android:textSize">20sp</item>
</style>
之后再用到这个TextView的时候就直接使用style="@style/text_title_style"即可。
同样我们自己可以做一些常用的style.
2.下面我们做一个滚动的TextView
具体代码:
<TextView
style="@style/fill_wrap_style"
android:singleLine="true"
android:ellipsize="marquee"
android:text="我是您的手机小卫士,专门保护您的手机,快些使用下面的功能吧,随时随地为您服务!"/>
3.下面就是各个功能模块,使用GridView。
指定列数为3.
<GridView
style="@style/fill_style"
android:id="@+id/gv_home"
android:numColumns="3"
></GridView>
指定各模块的图片和名称:
private static final String[] names = {"手机防盗","通讯卫士","软件管理","进程管理"
,"流量统计","手机杀毒","系统优化","高级工具","设置中心"};
private static final int[] icons = {R.drawable.safe,R.drawable.callmsgsafe,R.drawable.app,R.drawable.taskmanager
,R.drawable.netmanager,R.drawable.trojan,R.drawable.sysoptimize,R.drawable.atools,R.drawable.settings};
定义一个适配器HomeAdapter,继承BaseAdapter。复写getView方法。
在这之前我们先写一个list_home_item.xml文件,里面是一个ImageView和一个TextView。
具体代码:
<ImageView
android:id="@+id/iv_home_icon"
android:layout_width="50dip"
android:layout_height="50dip"
android:src="@drawable/app"
/> <TextView
android:id="@+id/tv_home_name"
style="@style/wrap_style"
android:text="手机防盗"
android:textColor="#000000"
android:textStyle="bold"
/>
上面的src和text仅为演示用。演示后应删除掉。
HomeAdapter的getView方法具体代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//把布局文件转化成View对象
View view = View.inflate(getApplicationContext(), R.layout.list_home_item, null);
ImageView iv_home_icon = (ImageView) view.findViewById(R.id.iv_home_icon);
iv_home_icon.setImageResource(icons[position]);
TextView tv_home_name = (TextView) view.findViewById(R.id.tv_home_name);
tv_home_name.setText(names[position]);
return view;
}
还要记得写getCount()方法,不然显示为0个功能模块:
public int getCount() {
return names.length;
}
小问题:
1几个模块靠的太近,要显示有一些距离:
在<GridView下设置网格垂直方向间距:android:verticalSpacing="10dp"
2设置界面没有标题栏。
3滚动文本没有自动滚动。
若想要其滚动,应该设置focusabelInTouchMode为True.
需要新建类,重写TextView方法。
具体代码:
public class FocusTextView extends TextView {
public FocusTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public FocusTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FocusTextView(Context context) {
super(context);
}
@Override
@ExportedProperty(category = "focus")
public boolean isFocused() {
return true;
}
}
再将滚动文本的标签改为com.dongdong.phonesafe.ui.FocusTextView即可。
Android小项目之十一 应用程序的主界面的更多相关文章
- Android小项目之十 应用程序更新的签名问题
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android小项目之十二 设置中心的界面
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android小项目之四 自动更新检查的逻辑
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android小项目练习之一 项目简介
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android ActionBar应用实战,高仿微信主界面的设计
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...
- Android小项目之七 应用程序的更新安装
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android小项目之九 两种上下文的区别
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android小项目之八 界面细节
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android小项目之五 splash动画效果
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
随机推荐
- oracle不用tsname文件的时候着怎么办
oracle\product\10.2.0\client_2\odp.net\PublisherPolicy\Policy.9.2.Oracle.DataAccess.config 找到newVers ...
- oracle学习 八 分页(使用rownumber)(持续更)
rownumber是查询的数据集之后加入一个伪列(连续的)使用它可以去制作以oracle数据库为基础的分页,语句类似于公式直接套用如下: select * from (select rownum r, ...
- C++视频课程小结(3)
C++远征之封装篇(上) 章节介绍: 每章小结: 第一章:课程介绍. 按照惯例是章节的总介绍,内容明显多了很多(为了做作业我还要赶进度的说),主要说了:类和对象是本章的主角,然后还有很多配角,像数据成 ...
- JavaScript escape encodeURI encodeURIComponent() 函数
总结一下: 1.encodeURI(),和encodeURIComponent()是对字符进行编码. 2.decodeURI(),和decodeURIComponent()是对相应编码过的字符进行解码 ...
- EasyMock 使用方法与原理剖析
from:http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/ Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一 ...
- 异步文件上传组件 Uploader
Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ...
- spring中propertyplaceholderconfigurer简介
Spring的框架中为您提供了一个 BeanFactoryPostProcessor 的实作类别: org.springframework.beans.factory.config.PropertyP ...
- 用ICSharpCode.SharpZipLib进行压缩
今天过中秋节,当地时间(2013-09-08),公司也放假了,正好也闲着没事,就在网上学习学习,找找资料什么的.最近项目上可能会用到压缩的功能,所以自己就先在网上学习了,发现一个不错的用于压缩的DLL ...
- Java常见排序算法之折半插入排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- cdoj 04 Complete Building the Houses 暴力
Complete Building the Houses Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/# ...