首先本人在此申明,本人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里面存在众多问题有待完善,请看到的各位大神提点提点,本人刚入门,我看到过很多大神写的博客文章,连菜鸟都算不上,不喜勿喷,谢谢!