您的位置:首页 > 移动开发 > Android开发

手把手教你安卓入门(三 完)

2016-05-23 21:51 555 查看

3.2.4 计算功能

当用户点击“”按钮的时候,开始计算。

我们将使用第三方计算库
Arity
对表达式进行计算。
Arity
库文件可以在安豆网提供的下载地址进行下载。

下载完成后,

将下载的
arity-2.1.2.jar
复制到项目工程所在的
Calulator\app\libs
目录下,如果这个目录不存在,就自己创建一个;

在Android Studio左边的项目浏览区,选择
Project
视图;

app->libs->arity-2.1.2,jar
上点击右键,选择
Add as Library...


在弹出的选择框中,点击
OK




利用第三方库,对运算表达式进行计算,

获取表达式区域的内容;

创建第三方库Arity提供的
Symbols
对象,使用它的
evl()
方法,计算表达式的内容;

将计算结果显示到计算结果区域,并清空表达式区域;

如果Arity不能根据提供的计算表达式进行计算,会抛出异常。因此使用
try...catch
抓住异常,用
Toast
类给用户一个内容为
错误!
的提示。

public void onClick(View view)
{
switch (view.getId()) {
......
case R.id.btn_equ: {
TextView formula = (TextView) findViewById(R.id.formula_area);
String strContent = formula.getText().toString();

try {
Symbols s = new Symbols();
double res = s.eval(strContent);

TextView result = (TextView) findViewById(R.id.result_area);
result.setText(String.valueOf(res));

formula.setText("");

} catch (SyntaxException e) {
Toast.makeText(MainActivity.this, “错误!”, Toast.LENGTH_SHORT).show();
}
}
break;
}
}


至此,一个具有计算功能的计算器就已经出现了。

3.3 计算器界面美化

这一节,我们将对粗糙的计算器界面进行美化。

3.3.1 美化显示区域

在布局文件
activity_main.xml
中,给整个界面增加一个背景颜色
#FF4B5459
,使用
android:background
属性设置,这里的颜色是采用AARRGGBB的形式进行定义的;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.anddle.calculator.MainActivity"
android:orientation="vertical"
android:background="#FF4B5459">
</LinearLayout>




给结果显示区域和表达式显示区域之间,增加一条间隔线,高度设置为
5dp
,用颜色“#FF5C6265”;

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">

<TextView
android:id="@+id/result_area"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>

<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="#FF5C6265" />

<TextView
android:id="@+id/formula_area"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>

</LinearLayout>


显示区域的字体颜色通过
android:textColor
属性设置成白色
#FFFFFFFF
;字体大小通过
android:textSize
属性设置成
45sp
;通过
android:gravity
属性让文字位于左边居中显示;显示区域的页边距通过
android:padding
属性设置成
5dp


<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">

<TextView
android:id="@+id/result_area"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textColor="#FFFFFFFF"
android:textSize="45sp"
android:gravity="center_vertical|right"
android:padding="5dp"/>

<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="#FF5C6265" />

<TextView
android:id="@+id/formula_area"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textColor="#FFFFFFFF"
android:textSize="45sp"
android:gravity="center_vertical|right"
android:padding="5dp"/>

</LinearLayout>




3.3.2 美化键盘区域

修改
Button
的字体大小和字体颜色,与修改
TextView
的字体大小和字体颜色完全一样。

<TableRow android:layout_weight="1">
<Button android:id="@+id/btn_c"
android:text="C"
android:onClick="onClick"
android:textColor="#FF000000"
android:textSize="35sp"/>
......
</TableRow>


修改
Button
的按键背景效果,需要使用selector drawble。

打开
res\values\colors.xml
文件,定义
没有按下按钮
时背景的颜色为
#D0DCE3
按下按钮
时背景的颜色为
#BED1DB


<resources>
......
<color name="colorBtnNormal">#D0DCE3</color>
<color name="colorBtnPressed">#BED1DB</color>
</resources>


res\drawable\
目录下,点击右键,启动创建drawable resource的向导;



创建selector drawable的xml文件,文件名为
button_selector




根据
Button
是否被按下的状态
android:state_pressed
,分别为它们设置不同的颜色,
android:state_pressed=true
,说明当前按钮被按下,
android:state_pressed=false
,说明当前按钮没有被按下;设置颜色使用
@color
关键字,并加上之前在colors.xml中定义的颜色的名字;

xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="false" android:drawable="@color/colorBtnNormal"/>

<item android:state_pressed="true" android:drawable="@color/colorBtnPressed"/>

</selector>


Button
android:background
属性,使用drawable selector,

<TableRow android:layout_weight="1">
<Button android:id="@+id/btn_c"
android:text="C"
android:onClick="onClick"
android:textColor="#FF000000"
android:textSize="35sp"
android:background="@drawable/button_selector"/>
......
</TableRow>




为了减少修改每个
Button
的工作量,可以将
Button
的这种显示效果定义成一种
style
,为“计算器”应用中的所有
Button
设置这种
style
就可以了。

打开
res\values\styles.xml
文件,将
Button
的共同特性定义成一个
style
---
BtnStyle
;此外,为了键盘美观,通过定义
android:layout_margin
属性,增加了每个按钮的间距。

<resources>
......
<style name="BtnStyle">
<item name="android:layout_height">match_parent</item>
<item name="android:layout_margin">0.5dp</item>
<item name="android:textSize">35sp</item>
<item name="android:textColor">#FF000000</item>
<item name="android:background">@drawable/button_selector</item>
</style>
</resources>


为所有
Button
通过
style
属性,添加一种
BtnStyle
风格;

<TableRow android:layout_weight="1">
<Button android:id="@+id/btn_c" android:text="C" android:onClick="onClick" style="@style/BtnStyle" />
<Button android:id="@+id/btn_del" android:text="DEL" android:onClick="onClick" style="@style/BtnStyle"/>
<Button android:id="@+id/btn_dot" android:text="." android:onClick="onClick" style="@style/BtnStyle"/>
<Button android:id="@+id/btn_add" android:text="+" android:onClick="onClick" style="@style/BtnStyle"/>
</TableRow>


至此,计算器界面美化完成。



3.4 添加中文语言支持

安卓系统,支持多国语言。在这一节,我们将添加中文支持。

res
目录下,点击右键,启动创建android resource的向导;



File name
栏,输入
strings.xml
,再选中下方的
locale
,添加到右边;



选中
zh
,代表中文;



在创建出来的中文的
res\values-zh\strings.xml
文件中,仿照
res\values\strings.xml
的内容,添加中文语言;

<resources>
<string name="app_name">计算器</string>
</resources>


这里的string
app_name
,在
AndroidManifest.xml
文件中被使用,它使用
android:label
属性,指定了这个应用的名称。

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>


至此,中文语言的支持,添加完成。在设备上运行程序后,会看到现在“计算器”应用到名称已经变成中文的
计算器
了。



/[b]*******************************************************************[/b]/

* 版权声明

* 本教程只在CSDN安豆网发布,其他网站出现本教程均属侵权。

/[b]*******************************************************************[/b]/

后记

到此为止,安卓开发的整个过程,大体就完成了。相信通过上面的学习,大家对安卓开发已经有了一个快速的认识。接下来,安卓开发进一步的学习,就要靠各位自己探索了。

应用开发完成后的编译对齐、APK签名等与对外发布相关的操作,这里就不再介绍了。大家可以参考别的资料。

安豆网还有一份更加详细的介绍计算器应用设计的视频。那里面使用了更多的技术来深化目前这个计算器的改进,讲解得更加细致,欢迎大家参考。

/[b]*******************************************************************[/b]/

* 版权声明

* 本教程只在CSDN安豆网发布,其他网站出现本教程均属侵权。

*另外,我们还推出了Arduino智能硬件相关的教程,您可以在我们的网店跟我学Arduino编程中购买相关硬件。同时也感谢大家对我们这些码农的支持。

*最后再次感谢各位读者对
安豆
的支持,谢谢:)

/[b]*******************************************************************[/b]/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android