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中。

时间: 2024-09-13 15:31:02

android开发列表界面的相关文章

界面跳转-android 开发中界面的跳转

问题描述 android 开发中界面的跳转 我想设置一个监听器直接跳到android模拟器自带的无线和网络设置(Wireless&networks)界面,请大神帮个忙 解决方案 Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS"); startActivity(wifiSettingsIntent); 监听可以参考如下:http://blog.sina.com.cn/s/blog_67d

Android WebView 应用界面开发教程_Android

WebView组件本身就是一个浏览器实现,Android5.0增强的WebView基于Chromium M37,直接支持WebRTC.WebAudio.WebGL.开发者可以直接在WebView中使用聚合(Polymer)和Material设计. 一.WebView浏览网页(加载线上URL) WebView提供了很多方法执行浏览器操作,常用方法如下: void goBack():后退 void goForward():前进. void goBackOrForward(int step):step

Android WebView 应用界面开发教程

WebView组件本身就是一个浏览器实现,Android5.0增强的WebView基于Chromium M37,直接支持WebRTC.WebAudio.WebGL.开发者可以直接在WebView中使用聚合(Polymer)和Material设计. 一.WebView浏览网页(加载线上URL) WebView提供了很多方法执行浏览器操作,常用方法如下: void goBack():后退 void goForward():前进. void goBackOrForward(int step):step

Android开发入门(十二)列表控件 12.3 ListView的总结范例

使用一个例子,来总结一下ListView的基本使用. 1. 新建一个工程:ListViewDemo. 2. main.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pare

Android开发入门(十二)列表控件 12.2 ListView的扩展功能

ListView是一个可以被深度扩展的视图.在做项目的时候,扩展ListView去显示数据是必不可免的.接下 来会展示如何在ListView中去选择多个物件,以及如何使用ListView的"过滤"功能. 1. 使用上一 节的工程:BasicViews5. 2. 在BasicViews5Activity.java中添加一些代码. String[] presidents; /** Called when the activity is first created. */ @Override

Android开发入门(十二)列表控件 12.1 ListView的基本使用

今天总结一下Android中的列表控件:ListView和Spinner. ListView可以垂直并可滑动地地显示 一些信息.下面阐述如何使用ListView显示一系列的信息. 1. 创建一个工程:BasicViews5. 2. strings.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">He

android-请问在Android开发中如何只获得手机桌面上的App列表

问题描述 请问在Android开发中如何只获得手机桌面上的App列表 我现在能够获得手机中安装的所有App列表,但我只想获得手机桌面上的App列表,请问应该如何解决? 解决方案 第一步:建立基本数据:PakageMod.java public class PakageMod { public String pakageName;//应用的包名 public String appName;//应用的名称 public Drawable icon;//应用图标 public PakageMod()

ios-IOS&amp;amp;amp;Android开发:如何从大量未加载的数据中加载一定量的数据到列表中

问题描述 IOS&Android开发:如何从大量未加载的数据中加载一定量的数据到列表中 绝大多数新闻资讯类应用开发过程中都会遇到这么一个问题: 规定每次从服务器最多只能获取20条数据,第一次刷新获取了20条最新的数据,添加到列表中,过一段时间有了30条未刷新的记录,这下问题来了:第二次刷新时是获取最新的20条还是接着第一次获取之后的20条数据放在列表前面?前者会导致列表中间空缺一部分数据,后者问题是要多刷新几次才能把所有数据获取到. 有过相关开发经验的大神们来说说你们的解决方案. 解决方案 刷新

《Android开发基础教程》——6.2节Gallery界面组件——画廊展示

6.2 Gallery界面组件--画廊展示 Android开发基础教程 Gallery组件的展示方式是将图片从左到右的方式排列,如同画廊放置作品一样.但是较为特殊的是Gallery组件支持手指左右拖曳滑动的效果,并且可以选择指定的图片,从界面布局来看是相当灵活而有用的组件. 6.2.1 Gallery语法示例与常用的属性 例如:我们要创建一个Gallery组件,名称为"Gallery01",Gallery组件和边界的距离是5dp,图片间的间隔是2dp,宽度填满整个屏幕,高度根据图片高度