Android GridView九宫格 图片加文字
2013-10-30 22:22
776 查看
http://blog.sina.com.cn/s/blog_8c3095e601019bpx.html
(2013-07-17 12:26:38)
转载▼
前段时间研究了下android中九宫格布局的实现。纵观现在的应用程序,九宫格是非常常见的一种布局方式。很多优秀的手机应用程序都采用了这一布局。下面就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"
>
<RelativeLayout
android:id="@+id/MainActivityrlTwo"
android:layout_width="fill_parent"
android:layout_height="45dp"
>
</RelativeLayout>
<GridView
android:id="@+id/MainActivityGrid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="3"
android:columnWidth="50dp"
android:layout_below="@+id/MainActivityrlTwo"
android:layout_marginTop="5dp"
/>
<RelativeLayout
android:id="@+id/MainActivityrlThree"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/tvLineBottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/line_default"
/>
<Button
android:id="@+id/btmore_MainActivity"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="More"
/>
</RelativeLayout>
</RelativeLayout>
--------------------------------------------------------------------------------------------------
其次就是每一格九宫格的布局方式:
<?xml version="1.0" encoding="utf-8"?>
<!--九宫格每一格的布局-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/MainActivityImage"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
/>
<TextView
android:id="@+id/MainActivityText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="18sp"
android:lines="1"
android:layout_marginTop="8dp"
/>
</LinearLayout>
--------------------------------------------------------------------------------------------------
最后就是adapter的编写:
public class ImageAdapter extends BaseAdapter {
private Context context;
public ImageAdapter(Context context) {
this.context=context;
}
private Integer[] images = {
//九宫格图片的设置
R.drawable.icon_1,
R.drawable.icon_2,
R.drawable.icon_3,
R.drawable.icon_4,
R.drawable.icon_5,
R.drawable.icon_6,
R.drawable.icon_7,
R.drawable.icon_8,
R.drawable.icon_9,
};
private String[] texts = {
//九宫格图片下方文字的设置
"记录支出",
"记录收入",
"账本管理",
"类别管理",
"查看图表",
"收支对照",
"记录心得",
"新闻公告",
"系统设置",
};
//get the number
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return position;
}
//get the current selector's id number
@Override
public long getItemId(int position) {
return position;
}
//create view method
@Override
public View getView(int position, View view, ViewGroup viewgroup) {
ImgTextWrapper wrapper;
if(view==null) {
wrapper = new ImgTextWrapper();
LayoutInflater inflater = LayoutInflater.from(context);
view = inflater.inflate(R.layout.item, null);
view.setTag(wrapper);
view.setPadding(15, 15, 15, 15); //每格的间距
} else {
wrapper = (ImgTextWrapper)view.getTag();
}
wrapper.imageView = (ImageView)view.findViewById(R.id.MainActivityImage);
wrapper.imageView.setBackgroundResource(images[position]);
wrapper.textView = (TextView)view.findViewById(R.id.MainActivityText);
wrapper.textView.setText(texts[position]);
return view;
}
}
class ImgTextWrapper {
ImageView imageView;
TextView textView;
}
--------------------------------------------------------------------------------------------------main
public class MainActivity extends Activity {
GridViewgridView;
ImageAdapteradapter;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView =(GridView) findViewById(R.id.MainActivityGrid);
adapter =new ImageAdapter(this);
gridView.setAdapter(adapter);
}
}
当然最后的最后就是你得自己准备九张漂亮的图片啦!
九宫格的主界面大功告成!如果还有什么疑问可以留言哈…欢迎交流
Android GridView九宫格 图片加文字
(2013-07-17 12:26:38)
转载▼
标签:androidgridview九宫格 | 分类: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"
>
<RelativeLayout
android:id="@+id/MainActivityrlTwo"
android:layout_width="fill_parent"
android:layout_height="45dp"
>
</RelativeLayout>
<GridView
android:id="@+id/MainActivityGrid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="3"
android:columnWidth="50dp"
android:layout_below="@+id/MainActivityrlTwo"
android:layout_marginTop="5dp"
/>
<RelativeLayout
android:id="@+id/MainActivityrlThree"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/tvLineBottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/line_default"
/>
<Button
android:id="@+id/btmore_MainActivity"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="More"
/>
</RelativeLayout>
</RelativeLayout>
--------------------------------------------------------------------------------------------------
其次就是每一格九宫格的布局方式:
<?xml version="1.0" encoding="utf-8"?>
<!--九宫格每一格的布局-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/MainActivityImage"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
/>
<TextView
android:id="@+id/MainActivityText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="18sp"
android:lines="1"
android:layout_marginTop="8dp"
/>
</LinearLayout>
--------------------------------------------------------------------------------------------------
最后就是adapter的编写:
public class ImageAdapter extends BaseAdapter {
private Context context;
public ImageAdapter(Context context) {
this.context=context;
}
private Integer[] images = {
//九宫格图片的设置
R.drawable.icon_1,
R.drawable.icon_2,
R.drawable.icon_3,
R.drawable.icon_4,
R.drawable.icon_5,
R.drawable.icon_6,
R.drawable.icon_7,
R.drawable.icon_8,
R.drawable.icon_9,
};
private String[] texts = {
//九宫格图片下方文字的设置
"记录支出",
"记录收入",
"账本管理",
"类别管理",
"查看图表",
"收支对照",
"记录心得",
"新闻公告",
"系统设置",
};
//get the number
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return position;
}
//get the current selector's id number
@Override
public long getItemId(int position) {
return position;
}
//create view method
@Override
public View getView(int position, View view, ViewGroup viewgroup) {
ImgTextWrapper wrapper;
if(view==null) {
wrapper = new ImgTextWrapper();
LayoutInflater inflater = LayoutInflater.from(context);
view = inflater.inflate(R.layout.item, null);
view.setTag(wrapper);
view.setPadding(15, 15, 15, 15); //每格的间距
} else {
wrapper = (ImgTextWrapper)view.getTag();
}
wrapper.imageView = (ImageView)view.findViewById(R.id.MainActivityImage);
wrapper.imageView.setBackgroundResource(images[position]);
wrapper.textView = (TextView)view.findViewById(R.id.MainActivityText);
wrapper.textView.setText(texts[position]);
return view;
}
}
class ImgTextWrapper {
ImageView imageView;
TextView textView;
}
--------------------------------------------------------------------------------------------------main
public class MainActivity extends Activity {
GridViewgridView;
ImageAdapteradapter;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView =(GridView) findViewById(R.id.MainActivityGrid);
adapter =new ImageAdapter(this);
gridView.setAdapter(adapter);
}
}
当然最后的最后就是你得自己准备九张漂亮的图片啦!
九宫格的主界面大功告成!如果还有什么疑问可以留言哈…欢迎交流
相关文章推荐
- Android 图片和文字布局,RadioButton有些地方比GridView好用些吧
- android GridView 通过json显示网络图片和文字
- Android中使用gridview如何让图片在上文字在下
- android GridView 通过json显示网络图片和文字
- android GridView 通过json显示网络图片和文字
- 关于android gridview不显示图片,文字等问题
- android 选择相册拍照图片 仿gridview九宫格 recycleview九宫格图片(可拖拽)
- gridview里面添加图片和文字
- android使用Canvas在图片上绘制文字
- Android:图片中叠加文字,支持拖动改变位置
- Android中用GridView实现九宫格
- Android的GridView控件点击图片变暗效果
- 【Android 控件使用及源码解析】 GridView规则显示图片仿微信朋友圈发图片
- Android ListView从网络获取图片及文字显示
- Android GridView控件在使用过程中图片压缩或者方法
- Android实现文字和图片混排(文字环绕图片)效果
- android中listview,gridview加载图片的线程并发解决方案
- android图片加水印,文字
- Android之Gridview图片列表
- 仿Android联系人SideBar排序,根据拼音A-Z字母快速导航联系人姓名,以及输入搜索条件过滤,显示姓名的文字图片,添加挤压动画