Android 标注体重测量仪源码

  首先我们利用网友用JAVA编写的基于android的可视化GUI布局拖拉工具程序 --DroidDraw。布局以下界面:
\

  此页面位于res/layout/main.xml。
  制作接收值页面,页面如下:
\

  此页面位于res/layout/mainlayout.xml,到此为止准备工作全部做好了,接下来正式进入 我们的代码实现功能。。
  主页面代码位于src/cn.terry/BundleObject.java
  代码如下:

  import android.app.Activity;
  import android.app.AlertDialog;
  import android.os.Bundle;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.*;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.graphics.Color;
  public class BundleObject extends Activity {
  private Button mButton;
  private EditText mEditText;
  private RadioGroup mRadioGroup;
  private double height;
  private String Sex;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  mButton=(Button)findViewById(R.id.confirm);
  mButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  mEditText=(EditText)findViewById(R.id.heigt);
  if(mEditText.getText().toString().length()==0)
  {
  /* AlertDialog builder = new AlertDialog.Builder(BundleObject.this).create();
  builder.setTitle("提示");
  builder.setMessage("請輸入您的身高!!");
  builder.show();*/
  new AlertDialog.Builder(BundleObject.this)
  .setMessage("请輸入您的身高")
  .setTitle("提示")
  .setNeutralButton("确定",new DialogInterface.OnClickListener() {
  @Override
  public void onClick(DialogInterface dialog, int which) {
  // TODO Auto-generated method stub
  mEditText.setHighlightColor(Color.RED);
  }
  }).create()
  .show();
  return;
  }
  mRadioGroup=(RadioGroup)findViewById(R.id.sex);
  height=Double.parseDouble(mEditText.getText().toString());
  if(mRadioGroup.getCheckedRadioButtonId()==R.id.M)
  {
  Sex="M";
  }
  else
  {
  Sex="F";
  }
  Intent intent=new Intent();
  intent.setClass(BundleObject.this, Next.class);
  Bundle bun=new Bundle();
  bun.putDouble("Height", height);
  bun.putString("Sex", Sex);
  intent.putExtras(bun);
  startActivity(intent);
  BundleObject.this.finish();
  }
  });
  }
  }
  在此有一点想让大家注意的是:弹出对话框的时候AlertDialog.Builder()这个方法在1.5以上都要加上类名.this 比如 我的页面的名字叫BundleObject.java就必须如下写下   AlertDialog.Builder(BundleObject.this)   1.5以下的版本直接this即可。。   到此为止己经完成了一半的功能了,那么在Acitivity2(Next.java)要如何接收来自Activity1(BundleObject.java)传递过来的数据呢?试想,在Activity1是以   Bundle封装对象,自然在Activity2亦是以Bundle的方式来解开封装的数据咯;程序中以   Bundle bun=this.getIntent().getExtras();   这样的方法来取得Bundle对象传递过来的性别与身高,经过计算之后,显示在屏幕上。   废话到此为止,第二个页面的处理程序如下:
  import java.text.DecimalFormat;
  import java.text.NumberFormat;
  import android.content.Intent;
  import android.app.Activity;
  import android.os.Bundle;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.*;
  public class Next extends Activity {
  private TextView mTextView01;
  private TextView mTextView02;
  private Button mButton1;
  private String Sex;
  private double Height;
  private String SextText;
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.mainlayout);
  Bundle bun=this.getIntent().getExtras();
  Sex=bun.getString("Sex");
  Height=bun.getDouble("Height");
  if(Sex.equals("M"))
  {
  SextText="男性";
  }
  else
  {
  SextText="女性";
  }
  //取得標準體重
  String Weight=getWeight(Sex, Height);
  mTextView01=(TextView)findViewById(R.id.TextView01);
  mTextView02=(TextView)findViewById(R.id.TextView02);
  String result = "您是一位" + SextText +
  "您的身高为:" + Height + "cm";
  String result2= "您的标准体重为:" + Weight +"千克";
  mTextView01.setText(result);
  mTextView02.setText(result2);
  mButton1=(Button)findViewById(R.id.Button03);
  mButton1.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick // TODO Auto-generated method stub
  Intent intent=new Intent();
  intent.setClass(Next.this, BundleObject.class);
  startActivity(intent);
  Next.this.finish();
  }
  });
  }
  //四舍五入的方法
  private String format(double num)
  {
  NumberFormat formatter=new DecimalFormat("0.00");
  String s=formatter.format(num);
  return s;
  }
  //取得體重
  public String getWeight(String Sex,double height)
  {
  String Weight="";
  if(Sex.equals("M"))
  {
  Weight=format((height-80)*0.7);
  }
  else
  {
  Weight=format((height-70)*0.6);
  }
  return Weight;
  }
  }
  有一点需要大家注意的是,如果要在新建的项目多新建一个处理类那必需在配置文件为他显示声明,程序才会运行通过,这里配置文件java的命名方式如下:   AndroidManifest.xml 相当于asp.net 的web.config   为了代码的完整性,我顺便把配置文件也贴出来,高手可以直接跳过
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="cn.terry"
  android:versionCode="1"
  android:versionName="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name">
  <activity android:name=".BundleObject"
  android:label="@string/app_name">
  <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  </activity>
  <activity android:name=".Next"></activity>
  </application>
  </manifest>

\ 点此处下载源码


转载:http://www.adobex.com/android/source/details/00000144.htm

转载于:https://my.oschina.net/androidcode/blog/103868

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全志R58的官方开发板加载bmi160驱动的步骤3B.txt 开发板:全志R58的官方开发板R58_PER3_LPDDR3_32X1_V1_1.pdf(板载加速度传感器bma250) 目标:外挂bmi160模块可以检测到加速度和角速度(acc+gyr/加速度传感器+陀螺仪) BSP:r58_20160823.tar.gz(2016/8/22从全志的git服务器拿下来的系统) 显示:HDMI输出1080p分辨率的LCD显示器。 计划步骤: 1、打通开发板上的bma250(证明开发板硬件是好的。全志官方的BSP也是好的。) 2、将驱动程序bma250.c中的bma250全部替换为bmi160,验证是可以加入新的gsensor的(陀螺仪类似)。 3、借用bma250.c这个驱动程序,初始化的部分修改为初始化bmi160,调通BMI160的gsensor部分。 4、完善全志/博世提供的bmi160的驱动程序,调通BMI160的gsensor部分。 (陀螺仪部分鱼刺类似,陀螺仪部分借用l3gd20.c来验证bmi160的gyr部分) 下面进行第三步:借用bma250.c这个驱动程序,初始化的部分修改为初始化bmi160,调通BMI160的gsensor部分。 为了方便观察,直接注释掉除了bma250之外的全部的gsensor: Z:\home\wwt\only_bma250_r58\android\device\softwinner\common\hardware-common\libhardware\libsensors\aw_sensors\sensorDetect.cpp struct sensor_extend_t gsensorList[] = { { { "bma250", LSG_BMA250, }, { "Bosch 3-axis Accelerometer", "Bosch Sensortec", 1, 0, SENSOR_TYPE_ACCELEROMETER, 4.0f*9.81f, (4.0f*9.81f)/1024.0f, 0.2f, 0,0,0, { }, }, }, }; Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\configs\gsensor.cfg ;Direction parameter adjustment, including the x, y, z axis, and xy interchange four variables, ;the name of the module used for identification, and drive registered name consistent ;-------------------------- ;name:bma250 ;-------------------------- gsensor_name = bma250 gsensor_direct_x = false gsensor_direct_y = true gsensor_direct_z = true gsensor_xy_revert = true Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\BoardConfig.mk #gsensor & Gyr sensor SW_BOARD_USES_SENSORS_TYPE = aw_sensors 注意:lunch的f1选项在HAL层中使用的ST的9轴(ACC+GYR+MAG)传感器。 #gsensor & Gyr sensor SW_BOARD_USES_SENSORS_TYPE = lsm9ds0 Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\init.sun8i.rc on boot # use automatic det

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值