android开发列表界面

简介: android开发列表界面,上边是一个显示题目,下边显示的是图标,中间显示的是列表。 看一下效果吧 当鼠标点击上之后出现背景图,下面看一下如何做出这样的效果吧。 1.创建android工程 修改main.

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

看一下效果吧

img_d302ae2389c9580861812f98a1b15822.jpg

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

1.创建android工程

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

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
 
  
<? 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类

输入内容如下:

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
 
  
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.修改主布局文件类

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
 
  
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中。

img_1ad633567ca2d3830eb8d6a30ed935f7.jpg

目录
相关文章
|
27天前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
175 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
1月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
227 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
1月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
485 3
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
457 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
1月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
106 0
|
2月前
|
存储 消息中间件 人工智能
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
114 4
|
2月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
184 6
|
4月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
170 0
|
XML 数据可视化 Java
Android常见界面布局(详细介绍)
Android常见界面布局(详细介绍)
611 0
Android常见界面布局(详细介绍)
|
Android开发
Android笔记:软键盘弹出遮盖原来界面的布局控件
Android笔记:软键盘弹出遮盖原来界面的布局控件
268 0