gridview线android
⑴ android gridview怎么用
GirdView的一些属性:
android:numColumns="auto_fit" --------列数设置为自动
android:columnWidth="90dp",----------每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth"------缩放与列宽大小同步
android:verticalSpacing="10dp"----------垂直边距
android:horizontalSpacing="10dp"-------水平边距
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的,
package com.example.testgridview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
private GridView gview;
private List<Map<String, Object>> data_list;
private SimpleAdapter sim_adapter;
// 图片封装为一个数组
private int[] icon = { R.drawable.address_book, R.drawable.calendar,
R.drawable.camera, R.drawable.clock, R.drawable.games_control,
R.drawable.messenger, R.drawable.ringtone, R.drawable.settings,
R.drawable.speech_balloon, R.drawable.weather, R.drawable.world,
R.drawable.youtube };
private String[] iconName = { "通讯录", "日历", "照相机", "时钟", "游戏", "短信", "铃声",
"设置", "语音", "天气", "浏览器", "视频" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
gview = (GridView) findViewById(R.id.gview);
//新建List
data_list = new ArrayList<Map<String, Object>>();
//获取数据
getData();
//新建适配器
String [] from ={"image","text"};
int [] to = {R.id.image,R.id.text};
sim_adapter = new SimpleAdapter(this, data_list, R.layout.item, from, to);
//配置适配器
gview.setAdapter(sim_adapter);
}
public List<Map<String, Object>> getData(){
//cion和iconName的长度是相同的,这里任选其一都可以
for(int i=0;i<icon.length;i++){
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", icon[i]);
map.put("text", iconName[i]);
data_list.add(map);
}
return data_list;
}
}
⑵ 如何设置GridView显示表格线
实际上,该网格线是通过设置GridView各子项的间隔,并分别设置GridView背景色与子项背景色实现的。
1.设置GridView背景色,设置水平间方向间隔属性值android:horizontalSpacing和竖直方向间隔属性值android:verticalSpacing
2.设置GridView子项背景色
⑶ android怎么让gridview有边框线
gridview有边框线通过设置里面控件的backgroud,也就是边框。通过shape设置。
下面例子来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行, 源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳。
<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android">
<!--圆角-->
<corners
android:radius="9dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:bottomRightRadius="2dp"/><!--设置圆角半径-->
<!--渐变-->
<gradient
android:startColor="@android:color/white"
android:centerColor="@android:color/black"
android:endColor="@android:color/black"
android:useLevel="true"
android:angle="45"
android:type="radial"
android:centerX="0"
android:centerY="0"
android:gradientRadius="90"/>
<!--间隔-->
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp"/><!--各方向的间隔-->
<!--大小-->
<size
android:width="50dp"
android:height="50dp"/><!--宽度和高度-->
<!--填充-->
<solid
android:color="@android:color/white"/><!--填充的颜色-->
<!--描边-->
<stroke
android:width="2dp"
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp"/>
</shape>
⑷ Android gridview 怎么绘制竖的分割线
找了个方法 item布局这样试试
<? xml version= "1.0" encoding= "utf-8" ?>
< LinearLayout xmlns:android= "url/apk/res/android"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:background= "#c4c4c4"
android:orientation= "vertical"
android:padding= "1px" >
<LinearLayout
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:background= "@color/white"
android:gravity= "center"
android:orientation= "vertical" >
<ImageView
android:id= "@+id/homegriditem_iv"
android:layout_width= "100dp"
android:layout_height= "100dp"
android:src= "@drawable/ic_launcher" />
<TextView
android:id= "@+id/homegriditem_tv"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:text ="xxx" />
</LinearLayout >
</ LinearLayout>
⑸ android 怎么给gridview画网格线填充
http://blog.163.com/www_iloveyou_com/blog/static/211658372201561721245909
⑹ android gridview 有没有网格线啊要做个带有网格线的数据显示。有没有谁能给个例子
没有网格线。我的做法是设置背景layout的颜色为黑色#000000(假设)。然后设置每列和每行的宽度为1dp,xml的代码如下:
android:verticalSpacing="1dp",两行之间的边距为1dp
android:horizontalSpacing="1dp",两列之间的边距为1dp。
而gridview的每个颜色为白色(这是适配在adatper的gridview子布局的xml中设定就行!)。下面是我做的日历的一个效果图。
⑺ android的:tableLayout和gridview有什么不同
tableLayout是表格布局,用的比较少,实现如下图所示效果
⑻ 如何给gridview的单元格加上分割线
重载dispatchDraw
public class LineGridView extends GridView{
public LineGridView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public LineGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public LineGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void dispatchDraw(Canvas canvas){
super.dispatchDraw(canvas);
View localView1 = getChildAt(0);
int column = getWidth() / localView1.getWidth();
int childCount = getChildCount();
Paint localPaint;
localPaint = new Paint();
localPaint.setStyle(Paint.Style.STROKE);
localPaint.setColor(getContext().getResources().getColor(R.color.grid_line));
for(int i = 0;i < childCount;i++){
View cellView = getChildAt(i);
if((i + 1) % column == 0){
canvas.drawLine(cellView.getLeft(), cellView.getBottom(), cellView.getRight(), cellView.getBottom(), localPaint);
}else if((i + 1) > (childCount - (childCount % column))){
canvas.drawLine(cellView.getRight(), cellView.getTop(), cellView.getRight(), cellView.getBottom(), localPaint);
}else{
canvas.drawLine(cellView.getRight(), cellView.getTop(), cellView.getRight(), cellView.getBottom(), localPaint);
canvas.drawLine(cellView.getLeft(), cellView.getBottom(), cellView.getRight(), cellView.getBottom(), localPaint);
}
}
if(childCount % column != 0){
for(int j = 0 ;j < (column-childCount % column) ; j++){
View lastView = getChildAt(childCount - 1);
canvas.drawLine(lastView.getRight() + lastView.getWidth() * j, lastView.getTop(), lastView.getRight() + lastView.getWidth()* j, lastView.getBottom(), localPaint);
}
}
}
}
注意: 最边上的格子需要特殊处理。super.dispatchDraw(canvas);一定要调用,不然格子中的内容(子view)就得不到绘制的机会!
⑼ 如何设置GridView显示表格线
这个平时用的少一点,去网上查了一下,有的说是通过设置背景颜色与子项背景来实现的:
实际上,该网格线是通过设置GridView各子项的间隔,并分别设置GridView背景色与子项背景色实现的。
1.设置GridView背景色,设置水平间方向间隔属性值android:horizontalSpacing和竖直方向间隔属性值android:verticalSpacing
2.设置GridView子项背景色