- 浏览: 171901 次
- 性别:
- 来自: 深圳
最新评论
-
solomon0104:
sraining 写道瞎扯,,自己试验一下,垃圾
Android 注册广播的两种方式区别 -
org_zhanghua:
为什么我这边上传成功后,提示下载json请指导一下:http: ...
spring mvc ajaxfileupload上传文件 -
zhongzixing:
你好,由于公司网络需要设置代理,并且需要用户和密码才能上网。我 ...
android SDK安装出现Failed to fetch URL http://dl-ssl.google.com/android/repository/a -
kuanye345:
博主 给个demo 啊
使用百度地图画轨迹 -
dou_yer:
有没有源码可以提供啊。。谢谢。
带进度条的通知栏
listview显示数据,类似HTML那样的table显示。显示不足的时候,横屏可以拖拉。
Activity 包括数据
package com.jdjw.test; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.widget.ListView; import com.jdjw.test.TableAdapter.TableCell; import com.jdjw.test.TableAdapter.TableRow; public class TestGridViewTableActivity extends Activity { private ListView lvSaleNum; private List<TableRow> table; private Context mContext; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.test_gridview_table); lvSaleNum = (ListView)findViewById(R.id.lv_salesNum); mContext = this; data(); } private void data(){ salesNum s1 = new salesNum("星期一",50,60,R.drawable.a0,60,80,R.drawable.a1); salesNum s2 = new salesNum("星期二",50,60,R.drawable.a0,10,80,R.drawable.a0); salesNum s3 = new salesNum("星期三",120,30,R.drawable.a1,30,80,R.drawable.a0); salesNum s4 = new salesNum("星期四",50,50,R.drawable.a0,80,80,R.drawable.a1); salesNum s5 = new salesNum("星期五",10,20,R.drawable.a0,62,60,R.drawable.a0); salesNum s6 = new salesNum("星期六",80,10,R.drawable.a1,90,80,R.drawable.a0); salesNum s7 = new salesNum("星期日",50,90,R.drawable.a0,50,30,R.drawable.a0); List<salesNum> data = new ArrayList<salesNum>(); data.add(s1); data.add(s2); data.add(s3); data.add(s4); data.add(s5); data.add(s6); data.add(s7); int width = getWindowManager().getDefaultDisplay().getWidth()/7; table = new ArrayList<TableRow>(); int height=30;//LayoutParams.FILL_PARENT; TableCell[] titleCells = new TableCell[7]; List<TableCell> titleList = new ArrayList<TableCell>(); TableCell title1 = new TableCell("时间",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title1); TableCell title2 = new TableCell("上月条码数",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title2); TableCell title3 = new TableCell("本月条码数",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title3); TableCell title4 = new TableCell("条码趋势",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title4); TableCell title5 = new TableCell("上月销售金额",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title5); TableCell title6 = new TableCell("本月销售金额",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title6); TableCell title7 = new TableCell("销售金额趋势",width + 8 ,height, TableCell.TEXT);//第一格 titleList.add(title7); table.add(new TableRow(titleList.toArray(titleCells))); for(int i=0;i<data.size();i++){ salesNum sales = data.get(i); TableCell[] cells = new TableCell[7]; List<TableCell> cellsList = new ArrayList<TableCell>(); TableCell cell1 = new TableCell(sales.getWeek(),width + 8 ,height, TableCell.TEXT);//第1格 cellsList.add(cell1); TableCell cell2 = new TableCell(sales.getBackMonthNum(),width + 8 ,height, TableCell.TEXT);//第2格 cellsList.add(cell2); TableCell cell3 = new TableCell(sales.getNextMonthNum(),width + 8 ,height, TableCell.TEXT);//第3格 cellsList.add(cell3); TableCell cell4 = new TableCell(sales.getNumImage(),width + 8 ,height, TableCell.IMAGE);//第4格 cellsList.add(cell4); TableCell cell5 = new TableCell(sales.getBackMonthMomey(),width + 8,height, TableCell.TEXT); cellsList.add(cell5); TableCell cell6 = new TableCell(sales.getNextMonthMomey(),width + 8 ,height, TableCell.TEXT); cellsList.add(cell6); TableCell cell7 = new TableCell(sales.getMomeyImage(),width + 8 ,height, TableCell.IMAGE); cellsList.add(cell7); table.add(new TableRow(cellsList.toArray(cells))); } //设置适配器 TableAdapter adapter = new TableAdapter(mContext,table); lvSaleNum.setAdapter(adapter); } class salesNum{ private String week; private int backMonthNum; private int nextMonthNum; private int numImage; private int backMonthMomey; private int nextMonthMomey; private int momeyImage; public salesNum(){} public salesNum(String week,int backMonthNum,int nextMonthNum,int numImage,int backMonthMomey,int nextMonthMomey,int momeyImage){ this.week = week; this.backMonthNum = backMonthNum; this.nextMonthNum = nextMonthNum; this.numImage = numImage; this.backMonthMomey = backMonthMomey; this.nextMonthMomey = nextMonthMomey; this.momeyImage = momeyImage; } public String getWeek() { return week; } public void setWeek(String week) { this.week = week; } public int getBackMonthNum() { return backMonthNum; } public void setBackMonthNum(int backMonthNum) { this.backMonthNum = backMonthNum; } public int getNextMonthNum() { return nextMonthNum; } public void setNextMonthNum(int nextMonthNum) { this.nextMonthNum = nextMonthNum; } public int getNumImage() { return numImage; } public void setNumImage(int numImage) { this.numImage = numImage; } public int getBackMonthMomey() { return backMonthMomey; } public void setBackMonthMomey(int backMonthMomey) { this.backMonthMomey = backMonthMomey; } public int getNextMonthMomey() { return nextMonthMomey; } public void setNextMonthMomey(int nextMonthMomey) { this.nextMonthMomey = nextMonthMomey; } public int getMomeyImage() { return momeyImage; } public void setMomeyImage(int momeyImage) { this.momeyImage = momeyImage; } } } 适配器 package com.jdjw.test; import java.util.List; import android.content.Context; import android.graphics.Color; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; /** * ListView自适应实现Table的类TableAdapter.java代码如下: * * PS:TableCell是格单元的类,TableRow是表格行的类,TableRowView是实现表格行的组件。 实现步骤:TableCell --> * TableRow(TableRowView)-->ListView * * */ public class TableAdapter extends BaseAdapter { private Context context; private List<TableRow> table; // 7行7列 public TableAdapter(Context context, List<TableRow> table) { this.context = context; this.table = table; } @Override public int getCount() { return table.size(); } @Override public long getItemId(int position) { return position; } public TableRow getItem(int position) { return table.get(position); } int i = 0; public View getView(int position, View convertView, ViewGroup parent) { TableRow tableRow = null; tableRow = table.get(position);// 得到行 TableRowView view; if (convertView == null) { view = new TableRowView(this.context, tableRow); convertView = view; } return convertView; } /** * TableRowView 实现表格行的样式 * * @author hellogv */ class TableRowView extends LinearLayout { public TableRowView(Context context, TableRow tableRow) { super(context); this.setOrientation(LinearLayout.HORIZONTAL); for (int i = 0; i < tableRow.getSize(); i++) {// 逐个格单元添加到行 TableCell tableCell = tableRow.getCellValue(i); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( tableCell.width, tableCell.height);// 按照格单元指定的大小设置空间 layoutParams.setMargins(0, 0, 1, 1);// 预留空隙制造边框 if (tableCell.type == TableCell.TEXT) {// 如果格单元是文本内容 TextView textCell = new TextView(context); textCell.setLines(1); textCell.setGravity(Gravity.CENTER); // textCell.setBackgroundColor(Color.BLACK);//背景黑色 textCell.setText(String.valueOf(tableCell.value)); addView(textCell, layoutParams); } else if (tableCell.type == TableCell.IMAGE) {// 如果格单元是图像内容 ImageView imgCell = new ImageView(context); // imgCell.setBackgroundColor(Color.BLACK);//背景黑色 imgCell.setImageResource((Integer) tableCell.value); addView(imgCell, layoutParams); } } // this.setBackgroundColor(Color.WHITE);//背景白色,利用空隙来实现边框 } } /** * TableRow 实现表格的行 * * @author hellogv */ static public class TableRow { private TableCell[] cell; public TableRow(TableCell[] cell) { this.cell = cell; } public int getSize() { return cell.length; } public TableCell getCellValue(int index) { if (index >= cell.length) return null; return cell[index]; } } /** * TableCell 实现表格的格单元 * * @author hellogv */ static public class TableCell { static public final int TEXT = 0; static public final int IMAGE = 1; public Object value; public int width; public int height; private int type; public TableCell(Object value, int width, int height, int type) { this.value = value; this.width = width; this.height = height; this.type = type; } } }
xml 布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- 添加横向滑动 设置fillviewport为truey意思是否将HorizontalScrollView的内容宽度拉伸以适应视口--> <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" > <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/lv_salesNum" /> </HorizontalScrollView> </LinearLayout>
发表评论
-
android viewstub
2013-08-08 14:56 2463利用ViewStub显示和隐藏布局 Vie ... -
android SDK安装出现Failed to fetch URL http://dl-ssl.google.com/android/repository/a
2013-04-21 09:26 9033早上起来弄了下环境,直接在android官方下载了个a ... -
cygwin+android ndk 编译FBReaderJ 开源项目
2012-09-06 11:00 2821不知道为什么老外的开源项目比较麻烦 我在http://www ... -
android 发送邮件
2012-08-14 17:34 2927android发邮件;提供了两种方式,只带的gmail发送;跟 ... -
java基本概念
2012-06-27 17:26 1247【形参与实参】 形参 ... -
Android 注册广播的两种方式区别
2012-03-22 14:26 140121.常驻型广播 常驻型广播,当你的应用程序关闭了,如果有 ... -
android keytool的一些使用命令
2012-02-13 11:46 2485Keytool是一个Java数据证书的管理工具 ,在打包apk ... -
带进度条的通知栏
2011-12-22 15:03 2721有时候会有些业务需要后台运行并以通知的形式,比如升级,监控什么 ... -
activityGroup 多个view无法自动弹出虚拟键盘
2011-12-01 11:41 1740使用activityGroup 中多个view中进行切换时如果 ... -
android中的短信操作
2011-10-20 15:34 1914在android读取短信并进行相应的管理时,可以进行短信箱删除 ... -
【原创】出行通v1.0面世了。欢迎大家免费下载
2011-10-04 00:23 1139如果你还为出门坐车而发难吗?如果回家还要去火车站查询车次和价位 ... -
使用百度地图画轨迹
2011-09-16 15:59 16586百度地图画轨迹连接线。 package com.li ...
相关推荐
Android控件是构成用户界面的基础元素,包括按钮(Button)、文本输入框(EditText)、单选按钮(RadioButton)、复选框(CheckBox)、图片(ImageButton)、进度条(ProgressBar)、列表视图(ListView)、网格视图(GridView)、...
在Android开发中,标题"图片列表RecyclerView+ListView+WebView+JzvdStd/JZPlayer+Jsoup+Glide"所提及的技术栈是构建一个功能丰富的移动应用的关键组件。以下是这些技术的具体介绍和它们如何协同工作的详细说明: 1...
8. **网格视图(GridView)**:类似ListView,但每个项目占据固定大小的网格,适合展示多列数据。 9. **日期/时间选择器(DatePicker/TimePicker)**:提供用户选择日期和时间的界面,常用于设置提醒或预约等场景。 10...
GridView与ListView类似,只是它可以显示二维网格数据。实现下拉刷新的步骤与ListView相同,同样是利用SwipeRefreshLayout包裹GridView,并设置对应的刷新监听器。不过,由于GridView的布局特性,可能需要对布局...
Grid View类似ListView,但显示为网格形式,每个单元格可以包含一个View。通过`android:numColumns`属性设置列数。 7. **绝对布局(AbsoluteLayout)** 绝对布局允许开发者精确控制每个子View的坐标,但并不推荐...
8. **网格视图(GridView)**:类似列表视图,但以网格形式显示。 9. **滑动选择器(SeekBar)**:允许用户通过滑动来选择一个值。 10. **日期/时间选择器(DatePicker/TimePicker)**:让用户选择日期或时间。 ...
本篇文章将详细讲解Android的几种布局方式,包括线性布局、相对布局、表格布局、网格视图、标签布局、列表视图以及已废弃的绝对布局。 1. **线性布局(Linear Layout)** 线性布局是最基础的布局方式,它可以按照...
本篇将详细讲解Android中的五种主要布局:线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格布局(GridView)以及列表布局(ListView)。 1. **线性布局(Linear Layout)*...
以下将详细解析标题"Android常用基础合集"所涵盖的知识点,并结合描述中提到的ImageView、ListView、GridView、RecyclerView以及WebView进行深入讲解。 1. **ImageView**: - **基本功能**:显示图片资源,可以是...
为了使ListView能够正确显示数据,需要使用Adapter(适配器)类来连接数据源和ListView,从而实现数据与界面的解耦。 7. **_______方法可以用来拦截有序广播终止广播。** - **知识点解释:** 在Android中,有序...
WebView允许应用内嵌网页浏览器,可以加载网页、显示HTML内容。掌握WebView的使用,可以让开发者在应用内提供Web页面的查看功能。 9. ScrollView的使用 ScrollView是一种可以滚动的视图,可以包含其他控件,并允许...
Android提供了多种布局方式来满足不同的设计需求,这些布局包括线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图...
### HTML文本显示与适配器使用 在Android中,使用HTML格式化文本可以通过`Html.fromHtml()`方法实现: ```java t1.setText(Html.fromHtml("111<font color='red'>222</font>333")); ``` 适配器(Adapter)是用于...
例如,在一个活动中,可能需要先使用LinearLayout或RelativeLayout来整体布局,然后在特定区域嵌入一个TableLayout展示表格数据,再添加一个TabLayout来分页显示内容,最后在底部使用GridView或ListView展示一系列可...
本文将深入探讨Android中常见的七种布局方式,包括线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)...
**ListView**是Android中非常常用的一个组件,用于显示一列可滚动的项目。创建ListView有两种方式:直接使用ListView组件或让Activity继承ListActivity。为了填充ListView,我们需要创建一个Adapter,Adapter负责...
Android提供了多种布局类型以满足不同的UI设计需求。 #### 布局类型 - **线性布局(LinearLayout)**: 是最常用的布局之一,它可以水平或垂直地排列其子视图(View)。 - **相对布局(RelativeLayout)**: 允许根据其他...