android绘制表格
⑴ android 里面怎么画表格呢
public class GameView extends View {
private int firstX = 15; // 起始点x
private int firstY = 15; // 起始点y
private int secondX = 70; // 第二点x
private int secondY = 70; // 第二点y
private int widthNum = 8; // 列
private int heightNum = 9; // 行
private int secondSideX = 60; // 第二列的宽
private int sideY = 50; // 行高
private int firstSidesX = 60; // 第一列的宽
public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
drawForm(canvas);
}
private void drawForm(Canvas canvas) {
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
int cellX, cellY, cellBX, cellBY;
for (int i = 0; i < widthNum; i++)
for (int j = 0; j < heightNum; j++) {
if(0 == i) { // 如果是第一列 宽度为firstSidesX
cellX = firstX + i * firstSidesX;
cellY = firstY + j * sideY;
cellBX = firstX + (i + 1) * firstSidesX;
cellBY = firstY + (j + 1) * sideY;
}else{
cellX = secondX + (i - 1) * secondSideX;
cellY = secondY + (j - 1) * sideY;
cellBX = secondX + i * secondSideX;
cellBY = secondY + j * sideY;
}
canvas.drawRect(cellX, cellY, cellBX, cellBY, paint);
int cellsNum = i + j * widthNum;
drawColorText(canvas, cellX, cellY, cellBX, cellBY, cellsNum);
}
}
⑵ 在手机上做表格用什么软件
在手机上做表格可以使用WPS office软件。
使用方法:
1、首先在手机上下载一个WPS office软件,以华为P20手机为例,在应用市场下载安装后点击打开该软件。
⑶ Android下通过Canvas类和Paint类画一个表格的方法的问题
Paint和Canvas类:
Paint:画笔,使用之前首先要调整好画笔,然后就可以在画布上绘图了,这样就可以显示在手机屏幕上。
主要方法有:setColor()
设置画笔的颜色
setTextSize()
设置字体大小
setStyle()
设置画笔的风格,空心还是实心
setStrokWidth()
设置空心的边框宽度
setTextAlign()
设置文字的对齐方式
setTypeface()
设置字体,如粗细、倾斜
在设置画笔颜色的时候,使用到了Color类,这个类定义了一些颜色常量和颜色转换。如Color.RED、Color.GRENN等,还可以通过Color类的静态方法rgb(int,int,int)
来定一个颜色,这三个参数的的值范围是0~255。
Canvas:是一个画布,可以在上面画想要的任何东西,也可以设置画布的一些的属性,比如背景颜色,尺寸等。Canvas提供了一下一些方法:
方法:Canvas(),创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布;
Canvas(Bitmap
bitmap),以bitmap对象创建一个画布,此时则将内容绘制在bitmap上,bitmap不得为null.
drawColor(),设置画布的背景颜色。
drawRect(left,top,right,bottom,paint);画矩形,前四个是float,后一个是Paint类型。
drawLine(startX,startY,stopX,stopY,paint),画线,前四个参数是float,后一个是Paint类型。
drawText(text,x,y,paint);在画布上画指定的文本,x,y两个参数是float,后一个是Paint类型。
⑷ android中如何动态创建数据表
在布局中加入表格
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/table1">
</TableLayout>
之后再 MainActivity 中写入动态添加的代码
public void click(View v) {
if(row.getText().length()>0&&column.getText().length()>0){
//把输入的行和列转为整形
int row_int=Integer.parseInt(row.getText().toString());
int col_int=Integer.parseInt(column.getText().toString());
//获取控件tableLayout
tableLayout = (TableLayout)findViewById(R.id.table1);
//清除表格所有行
tableLayout.removeAllViews();
//全部列自动填充空白处
tableLayout.setStretchAllColumns(true);
//生成X行,Y列的表格
for(int i=1;i<=row_int;i++)
{
TableRow tableRow=new TableRow(MainActivity.this);
for(int j=1;j<=col_int;j++)
{
//tv用于显示
TextView tv=new TextView(MainActivity.this);
//Button bt=new Button(MainActivity.this);
tv.setText("("+i+","+j+")");
tableRow.addView(tv);
}
//新建的TableRow添加到TableLayout
tableLayout.addView(tableRow, new TableLayout.LayoutParams(MP, WC,1));
}
}else{
Toast.makeText(MainActivity.this,"请输入数值",1).show();
}
}
⑸ 如何用安卓开发出复杂表格(类似Excel统计表)
Android实现Excel表格
具体的用法: 写好xml的布局文件:分为头部标题和lsitView两个部分。 头部标题永远排在第一列,其中第一个会滑动所以在布局的时候就不要放在
* com.excel.tool.MyHScrollView里面(MyHScrollView重写的HorizontalScrollView)。
* 其它没有什么就是对其滑动处理的把握。
*
* item里面的数据以及布局,按照正确的布局方式和逻辑处理。
*
* 它的用法其实你当做简单的listView那样操作就可以了。
*
* 排序没有完善,其实都是同一个方法,有待合并。
*
*
java">{
Contextcontext;
privateListViewlistView;
privateLinearLayouttoplayout;
privateMyAdaptermyAdapter;
publicList<DataModel>BaseData;
;
/**
*
*isTouchItem值的改变在
*
*com.excel.tool.MyHScrollView中去判断--解决ListView很容易触发点击事件
*
*里面处理控制表格滑动很容易触发的点击事件问题
*/
=false;
/***
*
*排序的监听
*/
privateLinearLayoutsort_0;
privatebooleanischeck;
privateImageViewsort_triangle;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=MainActivity.this;
viewInit();
dataInit();
}
/***
*
*view的初始化
*
*/
publicvoidviewInit(){
toplayout=(LinearLayout)findViewById(R.id.toplayout);
toplayout.setOnTouchListener(onTouchListener);
horizontalScrollView=(HorizontalScrollView)toplayout
.findViewById(R.id.horizontalScrollView_excel);
listView=(ListView)findViewById(R.id.listView);
listView.setOnItemClickListener(onItemClickListener);
listView.setOnTouchListener(onTouchListener);
sort_0=(LinearLayout)findViewById(R.id.sort_0);
sort_0.setOnClickListener(onClickListener);
sort_triangle=(ImageView)findViewById(R.id.waterlevel_triangle);
}
/***
*
*数据的初始化
*
*/
publicvoiddataInit(){
if(BaseData==null)
BaseData=newArrayList<DataModel>();
myAdapter=newMyAdapter(context,toplayout);
for(inti=0;i<Data.subject.length;i++){
DataModelmodel=newDataModel();
model.setSubject(Data.subject[i]);
model.setChinese(Data.Chinese[i]);
model.setMath(Data.Math[i]);
model.setEnglish(Data.English[i]);
model.setPhysics(Data.Physics[i]);
model.setChemistry(Data.Chemistry[i]);
model.setBiology(Data.Biology[i]);
model.setPE(Data.PE[i]);
BaseData.add(model);
}
myAdapter.setHostBaseData(BaseData);
listView.setAdapter(myAdapter);
}
=newOnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.sort_0:
if(ischeck==false){
//对数据进行排序--传入数据,2表示递减排序,1表示递减
BaseData=Sort.sortchukuData(BaseData,2);
myAdapter.setHostBaseData(BaseData);
ischeck=true;
sort_triangle
.setBackgroundResource(R.drawable.triangle_down);
}else{
BaseData=Sort.sortchukuData(BaseData,1);
myAdapter.setHostBaseData(BaseData);
ischeck=false;
sort_triangle.setBackgroundResource(R.drawable.triangle_up);
}
break;
}
}
};
=newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition,
longarg3){
if(isTouchItem==false)
return;
CustomerToast.showToast(context,"你点击的是:"+position+"这个下标");
}
};
=newOnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
switch(v.getId()){
caseR.id.toplayout:
horizontalScrollView.onTouchEvent(event);
returnfalse;
caseR.id.listView:
horizontalScrollView.onTouchEvent(event);
returnfalse;
}
returnfalse;
}
};
}
效果图片:
⑹ 在Android写一个表格如何自适应
网友们上网通常会采用800×600、1024×768两种分辨率,由于网页不是用来给自己看的,所以我们必须让自己的网页能够兼顾这两种情况,让不同分辨率设置的网友都能够看到一个排版美观正确的网页。
一、 自然拉伸
如果你的网站结构没有用到大量的图形来衔接,主要由表格来定结构,那么你就可以使用该方法。非常适用于主要由表格、文字来表达信息的简单的网页页面。制作表格时,只要你把表格的宽度属性定义为100%
,表格就会根据分辨率的不同自行调整宽度。
二、 固定居中
在800×600分辨率下制作的网页在1024×768分辨率的机器上打开,整个网页就会跑到左边;1024×768分辨率的网页在800×600分辨率的机器上有时也会变得"不堪入目"。两种分辨率各做一个吧?做起来费劲。所以目前普遍采用的方法是固定居中法!
现在大多数网民都还在用800*600的分辨率,所以我们一般可以以此分辨率为主。只要在网页原代码的<body>后紧加一句<center>,</body>前加一句</center>就OK了。不过有几个问题这是要注意一下,第一个要注意的是上面说到的百分比的问题,表格、单元格的宽度单位最好要使用像素单位,而不要用百分比。例如width=770。如果你的表格宽度设的是百分比,那么使用大于800×600的像素时,网页就会拉宽,这样网页可能会变形。在<body>中加入leftmargin=0,即<body
leftmargin=0>这种情况下,800×600支持的表格宽度为780像素时不会出现滚动条。还有一点要注意的是不能用DW中的层来定位。
三、 兵分两路
如果你的网页不经常更新,而且对页面效果极其在意,那好,你就设计两个页面,分别对应800×600和1024×768两种分辨率。然后根据不同的分辨率进行跳转就行了。
例如:
<script LANGUAGE="JavaScript">
function redirectPage() {
var
url_else =
var
url_800x600 =
var
url_1024x768 = ";
var url_1366x768
=
if ((screen.width ==
800) && (screen.height == 600))
window.location.href= url_800x600;
else if ((screen.width == 1024) &&
⑺ android中怎么创建一个表格
效果图:
5、 单击该项目,执行。便得到以上效果!
⑻ 手机有没有类似电脑做表格的app
有的,可以用wps office手机版。
WPS Office手机版是运行于Android 平台上的办公软件。兼容桌面办公文档,支持DOC/DOCX/WPS/XLS/XLSX/PPT/PPTX/TXT/PDF等23种文件格式。支持查看、创建和编辑各种常用Office文档,方便在智能手机和类书平板上使用,满足用户随时随地办公的需求。
金山WPS Office手机版是金山公司推出的、运行于Android平台上的全功能办公软件,国内同类产品排名第一,Google官方Android市场排名领先。用户遍布全世界200多个国家和地区。兼容性好,支持DOC/DOCX/WPS/XLS/XLSX/PPT/PPTX/TXT/PDF等23种文件格式。支持查看、创建和编辑各种常用Office文档,方便用户在手机和平板上使用,满足您随时随地办公的需求。
⑼ 手机有什么软件可以做表格的
手机上面下载wps就可以了。可以在浏览器里面搜索应用宝。然后通过应用宝来下载要下载的软件。它里面的软件兼容性强。都是官方软件。还可以备份手机图片。备份手机软件等等。还可以清理手机垃圾。
金山WPS Office移动版支持本地和在线存储文档的查看和编辑。编辑功能包括常用的文字编辑、格式处理、表格、图片对象等功能。轻点手指触屏即可操控,直观快捷,容易上手,随时随地享受办公乐趣。
支持多种文档格式,管理文档更方便金山WPS Office移动版完美支持多种文档格式如:doc、docx、wps、xls、xlsx、et、ppt、dps、pptx和txt文档的查看及编辑。内置文件管理器可自动整理您的办公文档,让文档管理更轻松。
⑽ android gridview怎么做表格
功能:做表格,根据每个单元格的不同含义,给单元格设置不同的背景色;
实现:通过GridView结合BaseAdapter实现;
案例源码:
第一步,新建一个Android应用:BaseAdapterDemoActivity;
第二部,重写main.xml,如下:
<?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"
>
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
第三步,在BaseAdapterDemoActivity.java文件中创建MyAdapter,基类是BaseAdapter,如下:
package hello.zcping.adapter;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class BaseAdapterDemoActivity extends Activity {
private GridView mGridView;
private MyAdapter mMyAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
public void setupViews() {
mMyAdapter = new MyAdapter();
mGridView = (GridView) findViewById(R.id.gridview);
mGridView.setAdapter(mMyAdapter);
mGridView.setNumColumns(5);
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView mTextView = new TextView(getApplicationContext());
String[] abc = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20" };
int[] icolor = { Color.GRAY, Color.GREEN, Color.RED, Color.WHITE,
Color.YELLOW, Color.GRAY, Color.GREEN, Color.RED,
Color.WHITE, Color.YELLOW, Color.GRAY, Color.GREEN,
Color.RED, Color.WHITE, Color.YELLOW, Color.GRAY,
Color.GREEN, Color.RED, Color.WHITE, Color.YELLOW };
mTextView.setText(abc[position]);
mTextView.setTextColor(Color.BLACK);
mTextView.setBackgroundColor(icolor[position]);
return mTextView;
}
}
}
效果如下: