Android开发学习之快速实现圆角ListView
2014-01-02 09:41
579 查看
一如既往,我们继续从微信当中寻找Android开发的思路,我们一起来看下面的这样一个效果。 这是微信里的一个界面,可以看到的是这个界面中大量使用了圆角的元素。当然,在其他的应用中,我们依然可以找到类似的影子,这自然是从IOS上移植过来的风格啦,俨然已经成了设计界的标准。
那么今天就让大家跟着我一起来实现这样一个圆角的ListView吧。首先来说说实现的原理,这里采用的是最为简单的,在我们的前面几篇文章中提到过的Shape方法。其实就是定义一个xml资源文件啦。
首先是创建这个xml文件,我们可以在res目录下创建一个drawable的文件夹,然后在此文件夹中创建这个xml文件:
接下来我们创建用于列表项的布局layout_item:
这里的布局选择了最为简单的一种,即列表项显示为文本。既然有了自定义的列表项,那么我们就继续自定义一个适配器类吧:
最后就是主界面啦,主界面较为简单,使用ListView或者ListActivity就可以啦,主要代码如下:
最后的运行效果如下图所示,你或许会说这个怎么和微信的效果不一样啊,其实呢,我们今天只是实现了一个ListView,而微信中却使用了多个ListView,怎么把多个
ListView放一起呢,解决方案是ScrollView,这一点大家可以自行去做更加深入的研究。
那么今天就让大家跟着我一起来实现这样一个圆角的ListView吧。首先来说说实现的原理,这里采用的是最为简单的,在我们的前面几篇文章中提到过的Shape方法。其实就是定义一个xml资源文件啦。
首先是创建这个xml文件,我们可以在res目录下创建一个drawable的文件夹,然后在此文件夹中创建这个xml文件:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:radius="8dp"/> <solid android:color="#ffffff"/> <stroke android:color="#000000" android:width="0.25dp"/> </shape>
接下来我们创建用于列表项的布局layout_item:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:textSize="18sp" android:layout_margin="10dp" android:textIsSelectable="true" /> <ImageView android:id="@+id/ImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_margin="10dp" android:contentDescription="@string/Description" android:src="@drawable/arrow" /> </RelativeLayout>
这里的布局选择了最为简单的一种,即列表项显示为文本。既然有了自定义的列表项,那么我们就继续自定义一个适配器类吧:
/* * 圆角列表 * @作者:秦元培 * @时间:2014年1月1日 */ package com.Android.ListViewEx; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class Adapter extends BaseAdapter { private Context mContext; private String[] mData; public Adapter(Context mContext,String[] mData) { this.mContext=mContext; this.mData=mData; } @Override public int getCount() { return mData.length; } @Override public Object getItem(int Index) { return mData[Index]; } @Override public long getItemId(int Index) { return Index; } @Override public View getView(int Index, View mView, ViewGroup mParent) { mView=LayoutInflater.from(mContext).inflate(R.layout.layout_item, null); TextView tv=(TextView)mView.findViewById(R.id.TextView); tv.setText(mData[Index]); return mView; } }
最后就是主界面啦,主界面较为简单,使用ListView或者ListActivity就可以啦,主要代码如下:
/* * 圆角列表 * 作者:秦元培 * 时间:2013年12月28日 * 备注:暂时不怎么会写,等把代码研究清楚了再说吧 */ package com.Android.ListViewEx; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.ListView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView mView=(ListView)findViewById(R.id.ListView); Adapter mAdapter=new Adapter(this,new String[]{"选项1","选项2","选项3","选项4","选项5","选项6","选项7","选项8","选项9","选项10"}); mView.setAdapter(mAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
最后的运行效果如下图所示,你或许会说这个怎么和微信的效果不一样啊,其实呢,我们今天只是实现了一个ListView,而微信中却使用了多个ListView,怎么把多个
ListView放一起呢,解决方案是ScrollView,这一点大家可以自行去做更加深入的研究。
相关文章推荐
- Android开发学习之以CameraAPI方式实现相机功能(一)——快速实现相机
- Android基础学习笔记之-ListView进阶用法(item圆角效果实现)
- Android开发学习笔记之通过反射技术修改listview的快速滑块图像
- Android开发学习之路-回调实现Service向activity传递数据
- android 开发零起步学习笔记(十七):自定义android用户控件,使用回调函数实现自定义事件
- 我是如何快速学习android开发的
- Android开发笔记之ListView下拉刷新实现机制
- Android开发技术学习之popupwindow的弹窗实现
- 【转】android开发中实现个性化ListView的一些概念和思路
- Android 快速开发系列 打造万能的ListView GridView 适配器
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- Android开发:实现带图片和checkbox的listview
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- 专访邓凡平:Android开发路上的快速学习之道
- android listview 圆角的实现方案,模仿Iphone的UITableView
- 专访邓凡平:Android开发路上的快速学习之道
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 开发中遇到的问题,ListView优先级、搜索框的实现。。。