android开发列表界面

简介:

android开发列表界面,上边是一个显示题目,下边显示的是图标,中间显示的是列表。

看一下效果吧

当鼠标点击上之后出现背景图,下面看一下如何做出这样的效果吧。

1.创建android工程

修改main.xml中的内容如下:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <LinearLayout android:layout_height="28px"
 android:layout_width="fill_parent" android:orientation="horizontal"
 android:gravity="center_vertical" android:paddingLeft="5px"
 android:background="@drawable/top_bg">
 <ImageView android:layout_width="25px"
 android:layout_height="18px" android:src="@drawable/manage"></ImageView>
 <TextView android:layout_width="wrap_content"
 android:layout_height="wrap_content" android:textColor="#000"
 android:textSize="14px" android:text="Account"></TextView>
 </LinearLayout>

 <!-- 中间的列表 -->
 <GridView android:id="@+id/gv_apps" android:layout_height="fill_parent"
 android:layout_width="fill_parent" android:numColumns="3"
 android:horizontalSpacing="20px" android:verticalSpacing="20px"
 android:listSelector="@drawable/choose_gridview"
 android:layout_marginTop="28px" android:layout_marginBottom="50px"
 android:layout_marginLeft="5px" android:layout_marginRight="5px"></GridView>

 <RelativeLayout android:layout_width="fill_parent"
 android:layout_height="34px" android:layout_alignParentBottom="true"
 android:background="@drawable/bottom_bg">
 <ImageButton android:id="@+id/ib_change_view"
 android:layout_alignParentLeft="true" android:layout_marginLeft="5px"
 android:layout_marginTop="1px" android:background="@drawable/button1"
 android:layout_width="32px" android:layout_height="32px"></ImageButton>
 <ImageButton android:id="@+id/ib_change_view"
 android:layout_alignParentLeft="true" android:layout_marginLeft="50px"
 android:layout_marginTop="1px" android:background="@drawable/button2"
 android:layout_width="32px" android:layout_height="32px"></ImageButton>
 <ImageButton android:id="@+id/ib_change_view"
 android:layout_alignParentLeft="true" android:layout_marginLeft="100px"
 android:layout_marginTop="1px" android:background="@drawable/button3"
 android:layout_width="32px" android:layout_height="32px"></ImageButton>
 <ImageButton android:id="@+id/ib_change_category"
 android:layout_alignParentLeft="true" android:layout_marginLeft="150px"
 android:layout_marginTop="1px" android:background="@drawable/button4"
 android:layout_width="32px" android:layout_height="32px"></ImageButton>
 </RelativeLayout>

</RelativeLayout>

在这里边用了两个布局

RelativeLayout:children是相互之间相关位置或者和他们的parent位置相关,常用在form中

LinearLayout:children排列成一行多列或者一列多行的形式,这种layout最常见

GridView 显示的是网格的布局,一般可以加入各种adapter,这是适配器的典型实现。android中面向对象做的真的不错。。。

2.添加GridViewAdapter.java类

输入内容如下:


public class GridViewAdapter extends BaseAdapter{
 //存放各个元素
 private List<ViewItem> listItem = new ArrayList<ViewItem>();
 
 // 将一个xml文件转化成视图
 LayoutInflater inFlater;
 
 public GridViewAdapter(Context context){
 this.inFlater = LayoutInflater.from(context);
 init();
 }
 
 private void init(){
 //先在这里初始化,以后放到数据库里
 ViewItem vi1 = new ViewItem();
 vi1.setName("记录账目");
 vi1.setImgName(R.drawable.img1);
 ViewItem vi2 = new ViewItem();
 vi2.setName("记录账目");
 vi2.setImgName(R.drawable.img2);
 ViewItem vi3 = new ViewItem();
 vi3.setName("记录账目");
 vi3.setImgName(R.drawable.img3);
 ViewItem vi4 = new ViewItem();
 vi4.setName("记录账目");
 vi4.setImgName(R.drawable.img4);
 ViewItem vi5 = new ViewItem();
 vi5.setName("记录账目");
 vi5.setImgName(R.drawable.img5);
 ViewItem vi6 = new ViewItem();
 vi6.setName("记录账目");
 vi6.setImgName(R.drawable.img6);
 listItem.add(vi1);
 listItem.add(vi2);
 listItem.add(vi3);
 listItem.add(vi4);
 listItem.add(vi5);
 listItem.add(vi6);
 }

 public int getCount() {
 // TODO Auto-generated method stub
 return listItem.size();
 }

 public Object getItem(int arg0) {
 // TODO Auto-generated method stub
 return arg0;
 }

 public long getItemId(int arg0) {
 // TODO Auto-generated method stub
 return arg0;
 }

 public View getView(int arg0, View arg1, ViewGroup arg2) {
 // TODO Auto-generated method stub
 View view = inFlater.inflate(R.layout.gv_item, null);
 TextView tv = (TextView) view.findViewById(R.id.gv_item_appname);
 ImageView iv = (ImageView) view.findViewById(R.id.gv_item_icon);
 
 tv.setText(listItem.get(arg0).getName());
 iv.setImageResource(listItem.get(arg0).getImgName());
 
 return view;
 }

}

配置适配器,并且将xml转化成视图处理。

继承BaseAdapter,并且实现里面的方法。

3.修改主布局文件类


public class AccountMain extends Activity {
 /** Called when the activity is first created. */
 private GridView gv;

 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 
 // 去除title
 requestWindowFeature(Window.FEATURE_NO_TITLE);
 // 全屏
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
 WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
 setContentView(R.layout.main);

 gv = (GridView) this.findViewById(R.id.gv_apps);

 gv.setAdapter(new GridViewAdapter(AccountMain.this));
 }
}

先是实例化GridView,然后将对应的适配器信息传入,这样就得到了上面的效果!

其中ImageButton的属性android:src如果设置的图片较大则全部显示,解决的办法是要么用android:background,要么干脆换成ImageView。

这只是其中的一个界面的演示,这块的init部分可以再做进一步的处理,可以做动态的配置。

可以将配置信息配置到配置文件中或者将对应信息配置到数据库中,即SqlLite中。

目录
相关文章
|
4月前
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
|
4月前
|
XML Java Android开发
Android自定义view之网易云推荐歌单界面
本文详细介绍了如何通过自定义View实现网易云音乐推荐歌单界面的效果。首先,作者自定义了一个圆角图片控件`MellowImageView`,用于绘制圆角矩形图片。接着,通过将布局放入`HorizontalScrollView`中,实现了左右滑动功能,并使用`ViewFlipper`添加图片切换动画效果。文章提供了完整的代码示例,包括XML布局、动画文件和Java代码,最终展示了实现效果。此教程适合想了解自定义View和动画效果的开发者。
200 65
Android自定义view之网易云推荐歌单界面
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
116 11
|
3月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
140 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
6月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1114 77
|
4月前
|
Android开发 开发者
Android企业级实战-界面篇-3
本文是《Android企业级实战-界面篇》系列的第三篇,主要介绍分割线和条形跳转框的实现方法,二者常用于设置和个人中心界面。文章通过具体代码示例展示了如何实现这两种UI组件,并提供了效果图。实现前需准备`dimens.xml`、`ids.xml`、`colors.xml`等文件,部分资源可参考系列第一、二篇文章。代码中详细说明了布局文件的配置,如分割线的样式定义和条形跳转框的组件组合,帮助开发者快速上手并应用于实际项目中。
|
4月前
|
XML Android开发 数据格式
Android企业级实战-界面篇-2
本文为《Android企业级实战-界面篇》系列第二篇,主要介绍三个UI模块的实现:用户资料模块、关注与粉丝统计模块以及喜欢和收藏功能模块。通过详细的XML代码展示布局设计,包括dimens、ids、colors配置文件的使用,帮助开发者快速构建美观且功能齐全的界面。文章结合实际效果图,便于理解和应用。建议配合第一篇文章内容学习,以获取完整工具类支持。
|
4月前
|
算法 Java Android开发
Android企业级实战-界面篇-1
本文详细介绍了Android企业级开发中界面实现的过程,涵盖效果展示、实现前准备及代码实现。作者通过自身经历分享了Android开发经验,并提供了`dimens.xml`、`ids.xml`、`colors.xml`和`strings.xml`等配置文件内容,帮助开发者快速构建规范化的UI布局。文章以一个具体的用户消息界面为例,展示了如何使用线性布局(LinearLayout)和相对布局(RelativeLayout)实现功能模块排列,并附带注意事项及使用方法,适合初学者和进阶开发者参考学习。
|
7月前
|
安全 Android开发 iOS开发
escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
escrcpy 是一款基于 Scrcpy 的开源项目,使用 Electron 构建,提供图形化界面来显示和控制 Android 设备。它支持 USB 和 Wi-Fi 连接,帧率可达 30-120fps,延迟低至 35-70ms,启动迅速且画质清晰。escrcpy 拥有丰富的功能,包括自动化任务、多设备管理、反向网络共享、批量操作等,无需注册账号或广告干扰。适用于游戏直播、办公协作和教育演示等多种场景,是一款轻量级、高性能的 Android 控制工具。
446 1
|
XML 数据可视化 Java
Android常见界面布局(详细介绍)
Android常见界面布局(详细介绍)
573 0
Android常见界面布局(详细介绍)