首先本人在此申明,本人Android刚刚入门,对里面的很多东西还不了解,这些东西虽然很简单,但我担心时间久了会忘了这些东西,同时也希望更多地对Android感兴趣的像我一样的,可以看看我写的东西,希望你们能有多收获,好了,废话不多说了,开始吧!

既然是入门,讲的很简单,这一节主要讲的是流布局,然后用流布局做了一个小项目。

第一次做项目,感觉好开心,好累!同时也学到了好多东西!so 苦一点累一点还是值得的。

首先展示一下我们已经做好了的apk

接下来展示一下代码:

1、BMIActivity.java文件

package com.tarena.lol;


 import java.math.BigDecimal;


 import android.app.Activity;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Toast;


 /**
  * 自定义Activity类的步骤:
  * 1.创建一个类,让它继承Activity
  * 2.重写onCreate()方法
  * 3.加载相应的布局文件
  * 4.在AndroidManifest.xml中
  *    application标签内配置自定义的Activity
  * @author sd
  *
  */
 public class BMIActivity extends Activity 
 implements OnClickListener{
//定义需要获取的组件
EditText heiText;//身高的文本输入框
EditText weiText;//体重的文本输入框
Button startBtn;//开始计算按钮
Button clearBtn;//清除数据按钮
TextView resultTV;//显示结果的文本框
ImageView resultIMG;//显示结果图片的图片视图
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载布局文件
setContentView(R.layout.bmi);
//获取相关组件
heiText=(EditText)findViewById(R.id.height);
weiText=(EditText)findViewById(R.id.weight);
startBtn=(Button)findViewById(R.id.startBtn);
clearBtn=(Button)findViewById(R.id.clearBtn);
resultTV=(TextView)findViewById(R.id.result);
resultIMG=(ImageView)findViewById(R.id.result_img);
//设置按钮监听器
startBtn.setOnClickListener(this);
clearBtn.setOnClickListener(this);
}
/**
* View v 代表着当前点击的组件
* 当有多个按钮共用同一个OnClick方法时
* 可以通过比较id来确定点击的是哪个组件
* 比如:v.getId()==startBtn.getId()?
*    或 v.getId()==R.id.startBtn?
* 如果为true说明点击的是startBtn
* 
*/
public void onClick(View v) {
if(v.getId()==R.id.clearBtn){
//当点击清空数据按钮时
//清除身高,体重文本输入框中的内容
//获取文本输入框的内容:getText()
//修改文本输入框的内容:setText(str)
//表示将文本输入框中的内容修改为str
heiText.setText("");
weiText.setText("");
}else{
//当点击开始计算以后
//1.先获取身高文本输入框中的内容
String hei = heiText.getText().toString();
//trim()方法的作用是去掉字符串两边的空格
if(hei.trim().equals("")){
Toast.makeText(this,
"身高不能为空!", 2000).show();
}else{
//将文本输入框中的内容转成double类型
double height = Double.parseDouble(hei);
//2.获取体重
String wei = weiText.getText().toString();
if(wei.trim().equals("")){
Toast.makeText(this,
"体重不能为空!", 2000).show();
}else{
double weight = Double.parseDouble(wei);
//计算bmi  bmi = 体重(kg)/身高(m)/身高(m)
double bmi = weight/(height/100)/(height/100);

String result = "";
if(bmi<18.5){
result = "您偏瘦";
//修改ImageView中显示的图片
resultIMG.setImageResource(
R.drawable.hiyo_y);
}else if(bmi>=18.5&&bmi<24.5){
result = "bmi正常";
resultIMG.setImageResource(
R.drawable.hiyo_n);
}else if(bmi>=24.5&&bmi<29.5){
result = "您偏胖";
resultIMG.setImageResource(
R.drawable.hiyo_nh);
}else{
result = "该减肥了~~";
resultIMG.setImageResource(
R.drawable.hiyo_h);
}
BigDecimal bd = new BigDecimal(bmi+"");
bmi = bd.setScale(2, 
BigDecimal.ROUND_HALF_UP).doubleValue();
//修改文本显示框中的内容
resultTV.setText(result+"您的BMI为"+bmi);

}

}


}
}
 }

2、AndroidMainfest.xml文件

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.tarena.lol"
     android:versionCode="1"
     android:versionName="1.0" >


     <uses-sdk android:minSdkVersion="10" />
<!-- APP应用配置
icon 配置应用程序的图标
@drawable/ic_launcher表示 会找到注册文件
R.java中的drawable类 /ic_launcher会根据
drawable中ic_launcher的地址找到对应的
图片显示出来。
注意:R.java是final修饰的,内容不可修改
  当在项目中添加内容时,会自动在R.java中注册
  当在drawable中添加图片的时候,文件名不能包含
  中文,只能包含[a-z 0-9 _ .]
label 配置应用名称

activity:配置与界面有关的java类

intent-filter: 当有多个Activity时
在哪个activity中配置intent-filter就优先
加载哪一个Activity。注意,只能有一个Activity
配置intent-filter.
-->
     <application
         android:icon="@drawable/icon"
         android:label="@string/app_name" >
         <activity
             android:name=".FirstAPPActivity"
             android:label="@string/demo" >
         </activity>
         <!-- android:name 配置Activity,
                        名字要和自定义的Activity类名相同 -->
         <activity android:name=".BMIActivity">
              <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>    
         </activity>
     </application>


 </manifest>

3、布局文件 bmi.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:gravity="center_horizontal"
     android:orientation="vertical"
     android:background="#F5D6CF" >
<!-- 显示图片的视图 -->
     <ImageView 
         android:layout_width="150dp"
         android:layout_height="60dp"
         android:src="@drawable/toptitle"
         android:layout_margin="20dp"
         />
     <!-- id 属性值要唯一 -->


     <LinearLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:orientation="horizontal" >


         <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@drawable/wei"
             android:layout_marginRight="10dp" 
             android:layout_marginTop="5dp"/>
<!-- inputType:可以限制文本输入框中
         输入内容的类型
     textPassword:以密码的形式显示
     number:只能输入数字(整数)
     numberDecimal:输入数字(包括小数)
     phone:电话号码
-->
         <EditText
             android:id="@+id/weight"
             android:layout_width="170dp"
             android:layout_height="wrap_content"
             android:hint="请输入体重" 
             android:inputType="numberDecimal"
             />


         <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@drawable/kg"
             android:layout_marginLeft="10dp" 
             android:layout_marginTop="5dp"/>
     </LinearLayout>
     <!-- id 属性值要唯一 -->


     <LinearLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:orientation="horizontal" 
         android:layout_marginTop="10dp">


         <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@drawable/hei"
             android:layout_marginRight="10dp" 
             android:layout_marginTop="5dp"/>


         <EditText
             android:id="@+id/height"
             android:layout_width="170dp"
             android:layout_height="wrap_content"
             android:hint="请输入身高"
             android:inputType="numberDecimal" />


         <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@drawable/cm"
             android:layout_marginLeft="10dp" 
             android:layout_marginTop="5dp"/>
     </LinearLayout>


     <LinearLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:orientation="horizontal" >


         <Button
             android:id="@+id/startBtn"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="30dp"
             android:text="开始计算" />


         <Button
             android:id="@+id/clearBtn"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="30dp"
             android:text="清空数据" />
     </LinearLayout>
     <!-- 显示结果 -->
<TextView 
   android:id="@+id/result"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="点击开始计算显示结果"
   android:layout_marginTop="20dp"
   android:gravity="center"
   android:textColor="#00FF00"
   android:textSize="15dp"/>
<ImageView 
   android:id="@+id/result_img"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/hiyo_n"
   android:layout_marginTop="30dp"/>
 </LinearLayout>

4、布局使用的图片文件


好了,由于时间的原因本人写到这里的,这个APK里面存在众多问题有待完善,请看到的各位大神提点提点,本人刚入门,我看到过很多大神写的博客文章,连菜鸟都算不上,不喜勿喷,谢谢!