Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 669|回复: 0

开发交流:android开发列表界面

[复制链接]

该用户从未签到

发表于 2011-10-24 10:00:03 | 显示全部楼层 |阅读模式
android开发列表界面,上边是一个显示题目,下边显示的是图标,中间显示的是列表。
看一下效果吧


当鼠标点击上之后出现背景图,下面看一下如何做出这样的效果吧。
1.创建android工程
修改main.xml中的内容如下: <?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    androidrientation="vertical" android:layout_width="fill_parent"

    android:layout_height="fill_parent">

<LinearLayout android:layout_height="28px"

        android:layout_width="fill_parent" androidrientation="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中。

回复

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:06 | 显示全部楼层

Re:开发交

学习一下,内容不错
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:08 | 显示全部楼层

Re:开发交

这个很不错,简单实用,一般新手向很需要
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:14 | 显示全部楼层

Re:开发交

学习了!!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:17 | 显示全部楼层

Re:开发交

顶顶更健康
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:20 | 显示全部楼层

Re:开发交

好东西。。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:23 | 显示全部楼层

Re:开发交

没有全部源码?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:25 | 显示全部楼层

Re:开发交

新手学习中,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:00:28 | 显示全部楼层

Re:开发交

学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 01:20 , Processed in 0.395375 second(s), 49 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表