饮食小秘书

一个小应用程序!不知道是否好用!

数据库连接:

package ygn.health;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import android.util.Log;

public class DBHelper {

private final int BUFFER_SIZE = 400000;
public static final String DB_NAME = "food.db"; // 保存的数据库文件名
public static final String PACKAGE_NAME = "ygn.health";
public static final String DB_PATH = "/data"
+ Environment.getDataDirectory().getAbsolutePath()
+ "/"
+ PACKAGE_NAME; // 在手机里存放数据库的位置

private SQLiteDatabase db;
private Context context;

DBHelper(Context context) {
this.context = context;
}

public SQLiteDatabase openDatabase() {

try {

String dbfile;
dbfile = DB_PATH + "/" + DB_NAME;
if (!(new File(dbfile).exists()))
{
//new File(dbfile);
// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
InputStream is = this.context.getResources().openRawResource(
R.raw.food);
// 欲导入的数据库
FileOutputStream fos = new FileOutputStream(dbfile);
byte[] buffer = new byte[BUFFER_SIZE];
int count = 0;

while ((count = is.read(buffer)) > 0)
{
fos.write(buffer, 0, count);
}

fos.close();
is.close();
}

db = SQLiteDatabase.openOrCreateDatabase(dbfile,null);
return db;

} catch (FileNotFoundException e) {

Log.e("Database", "File not found");
e.printStackTrace();

} catch (IOException e) {
Log.e("Database", "IO exception");
e.printStackTrace();
}
return null;
}

public void closeDatabase() {
if (this.db != null)
this.db.close();

}
}

显示自动更新的控件:

package ygn.health;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class MyView extends View{

int data[][]= {{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0}};
int changeFlag=0;

public void getNewdata(int newdata[][])
{
data=newdata;
}
public MyView(Context context)
{
super(context);
}

public MyView(Context context, AttributeSet attrs)
{
super(context,attrs);
}

@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);//重写onDraw方法
drawView(canvas,changeFlag);
}

public void resetView()
{
changeFlag=(++changeFlag)%4;
this.invalidate();
}
public void drawView(Canvas canvas,int flagDraw)
{
canvas.drawColor(Color.WHITE);//设置背景颜色
switch (changeFlag)
{
case 0 :
{

Paint paint= new Paint();
Paint paint2=new Paint();

paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);//去锯齿
paint.setColor(Color.GREEN);

paint2.setStyle(Paint.Style.STROKE);
paint2.setAntiAlias(true);//去锯齿
paint2.setColor(Color.BLUE);

int x=30;
int[] y=new int[10];

for(int i=0;i<data[0].length-1;i++)
{
y[i]=120-data[0][i];
y[i+1]=120-data[0][i+1];
canvas.drawLine(x, y[i], x+30, y[i+1], paint2);
canvas.drawCircle(x+30, y[i+1], 2, paint2);
canvas.drawText(String.valueOf((120-y[i])*50), x-4, y[i]-7, paint2);
canvas.drawText(String.valueOf((120-y[i+1])*50), x+30-4, y[i+1]-7, paint2);
x=x+30;
}
canvas.drawCircle(30, y[0], 2, paint2);

canvas.drawLine(30, 80, 270,80, paint);
canvas.drawText("能量", 273, 70, paint2);
paint.setTextSize(7);
canvas.drawText("(卡)", 5, 15, paint);
canvas.drawText("2000", 5, 80, paint);
break;
}
case 1 :
{

Paint paint= new Paint();
Paint paint2=new Paint();

paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);//去锯齿
paint.setColor(Color.GREEN);

paint2.setStyle(Paint.Style.STROKE);
paint2.setAntiAlias(true);//去锯齿
paint2.setColor(Color.BLUE);

int x=30;
int[] y=new int[10];

for(int i=0;i<data[1].length-1;i++)
{
y[i]=120-data[1][i];
y[i+1]=120-data[1][i+1];
canvas.drawLine(x, y[i], x+30, y[i+1], paint2);
canvas.drawCircle(x+30, y[i+1], 2, paint2);
canvas.drawText(String.valueOf((120-y[i])*50), x-4, y[i]-7, paint2);
canvas.drawText(String.valueOf((120-y[i+1])*50), x+30-4, y[i+1]-7, paint2);
x=x+30;
}
canvas.drawCircle(30, y[0], 2, paint2);

canvas.drawLine(30, 80, 270,80, paint);
canvas.drawText("水分", 273, 70, paint2);
paint.setTextSize(7);
canvas.drawText("(克/毫升)", 5, 15, paint);
canvas.drawText("2000", 5, 80, paint);
break;
}
case 2 :
{

Paint paint= new Paint();
Paint paint2=new Paint();

paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);//去锯齿
paint.setColor(Color.GREEN);

paint2.setStyle(Paint.Style.STROKE);
paint2.setAntiAlias(true);//去锯齿
paint2.setColor(Color.BLUE);

int x=30;
int[] y=new int[10];

for(int i=0;i<data[2].length-1;i++)
{
y[i]=120-data[2][i];
y[i+1]=120-data[2][i+1];
canvas.drawLine(x, y[i], x+30, y[i+1], paint2);
canvas.drawCircle(x+30, y[i+1], 2, paint2);
canvas.drawText(String.valueOf(120-y[i]), x-4, y[i]-7, paint2);
canvas.drawText(String.valueOf(120-y[i+1]), x+30-4, y[i+1]-7, paint2);
x=x+30;
}
canvas.drawCircle(30, y[0], 2, paint2);

canvas.drawLine(30, 45, 270,45, paint);
canvas.drawText("蛋白质", 273, 70, paint2);
paint.setTextSize(7);
canvas.drawText("(克)", 5, 15, paint);
canvas.drawText("75", 5, 45, paint);
break;
}
case 3 :
{

Paint paint= new Paint();
Paint paint2=new Paint();

paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);//去锯齿
paint.setColor(Color.GREEN);

paint2.setStyle(Paint.Style.STROKE);
paint2.setAntiAlias(true);//去锯齿
paint2.setColor(Color.BLUE);

int x=30;
int[] y=new int[10];

for(int i=0;i<data[3].length-1;i++)
{
y[i]=120-data[3][i];
y[i+1]=120-data[3][i+1];
canvas.drawLine(x, y[i], x+30, y[i+1], paint2);
canvas.drawCircle(x+30, y[i+1], 2, paint2);
canvas.drawText(String.valueOf(120-y[i]), x-4, y[i]-7, paint2);
canvas.drawText(String.valueOf(120-y[i+1]), x+30-4, y[i+1]-7, paint2);
x=x+30;
}
canvas.drawCircle(30, y[0], 2, paint2);

canvas.drawLine(30, 60, 270,60, paint);
canvas.drawText("脂肪", 273, 70, paint2);
paint.setTextSize(7);
canvas.drawText("(克)", 5, 15, paint);
canvas.drawText("60", 5, 60, paint);
break;
}

}
Paint paint3=new Paint();
paint3.setColor(Color.BLUE);//颜色
paint3.setColor(Color.GREEN);
paint3.setColor(Color.GRAY);

canvas.drawLine(30,120,240,120,paint3);
canvas.drawLine(60, 120, 60, 115, paint3);
canvas.drawLine(90, 120, 90, 115, paint3);
canvas.drawLine(120, 120, 120, 115, paint3);
canvas.drawLine(150, 120, 150, 115, paint3);
canvas.drawLine(180, 120, 180, 115, paint3);
canvas.drawLine(210, 120, 210, 115, paint3);
canvas.drawLine(240, 120, 240, 115, paint3);

paint3.setTextSize(8);
canvas.drawText("第一天", 30, 128, paint3);
canvas.drawText("第二天", 60, 128, paint3);
canvas.drawText("第三天", 90, 128, paint3);
canvas.drawText("第四天", 120, 128, paint3);
canvas.drawText("第五天", 150, 128, paint3);
canvas.drawText("昨天", 180, 128, paint3);
canvas.drawText("今天", 210, 128, paint3);

}
}

饮食小秘书

饮食小秘书

饮食小秘书