2018年9月29日 星期六

Android Studio撰寫程式第三課

  目前所使用的版本為Android studio 3.1.4,教初學者撰寫一隻體表面積(BSA)的應用程式。
    以下為BSA的公式-->BSA=(身高(公分)+體重(公斤)-60)/100
  
  範例:
     假設一個人的身高為180公分,體重70公斤,套上以上的公式計算一下
        
        (180+70-60)=190   190/100=1.9 則計算出來的BSA的值為1.9
  
        那成人正常的體表面積為1.6~1,9,所以計算出來算正常

  在Android Studio 3.1.4的版本中有幾個地方需特別的注意:
  
  JAVA的App中原始的程式碼如下:

  


上圖所顯示的為用來將所需的函式庫給放入到JAVA中的MainActivity.java中。


下面的程式碼為參考網路上的相關資料撰寫而成的,而這部份只局限於JAVA中的MainActivity.java中。


package aixstudio.bsaexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View ;
import android.widget.TextView ;
import android.widget.EditText ;
import android.widget.Button ;

import java.text.NumberFormat ;

public class MainActivity extends AppCompatActivity {
    TextView
dia;           //宣告全域變數
   
EditText height ;       //宣告全域變數
   
EditText weight;        //宣告全域變數
   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        getSupportActionBar().setTitle(
"BSA-計算器");       //加入Title的名稱
       
setContentView(R.layout.activity_main);

       
height =(EditText)findViewById (R.id .Et1) ;        //取得身高的物件
       
weight =(EditText )findViewById(R.id .Et2 );        //取得體重的物件
       
Button submit = (Button)findViewById(R.id.Btn1 );   // 取得按鈕物件

        //
按下按鈕 觸發事件
       
submit .setOnClickListener(new Button.OnClickListener(){

           
@Override
           
public void onClick(View Arg0) {
               
if ( !("".equals(height .getText().toString())
                        ||
"".equals(weight .getText().toString())) ) {
                   
float fh = Float.parseFloat(height.getEditableText().toString());// 取得 身高輸入值
                   
float fw = Float.parseFloat(weight.getEditableText().toString());// 取得 體重輸入值
                   
float fresult;                             // BSA值 計算結果
                   
TextView result = (TextView) findViewById(R.id.Tv3);     
                   // 取得 顯示結果 物件
                   
fh = fh / 100;               // 計算BSA身高(公分轉公尺)

                   
NumberFormat nf = NumberFormat.getInstance(); // 數字格式
                   
nf.setMaximumFractionDigits(2);             // 限制小數第二位

                   
fresult = (fw + fh) / 100// 計算BSA(體重(公斤)/身高(公尺))

                    
result.setText(
                            nf.format((fw + fh) /
100));      // 顯示BSA計算結果

                   
dia = (TextView) findViewById(R.id.Tv4);// 取得 顯示診斷 物件

                    
              // 診斷結果 顯示

                   
if (fresult > 1.9)

                       
dia.setText("你心臟血管的體表面積,換算的值過高,請洽詢醫師做治療。");

                   
else if (1.6 <= fresult && fresult <= 1.9)

                       
dia.setText("你心臟血管的體表面積屬正常範圍,可以繼續維持下去。");

                   
else if (fresult < 1.6)
                        
dia.setText("你心臟血管的體表面積,換算的值過低,請洽詢醫師做治療。");
                }
            }
        });
    }
}

  Xml的App中的Layout圖如下:
   選擇Layout的物件請統一放置在Component Tree中,便可對所使用的物件做有效的應用。



  下圖為使用模擬器所使用的結果。


              





2018年9月24日 星期一

Android Studio撰寫程式第二課

  所使用的版本為Android Studio 3.1.4,教初學者撰寫第一隻基本的轉換應用程式,則為"10進位轉換為2進位及10進位的計算方式....!!!

  假設10進位的數值為20那轉換為2進位的資料為10100,算法是如下:
  20/2取餘數0,10/2取餘數為0,5/2取餘數為1,2/2取餘數為0,如此倒著排列為10100。



  假設10進位的數值為20那轉換為16進位的資料為14,算法如下:
  20/16取餘數4,如此倒著排列為14。

  Xml的App中的Layout圖如下:
   選擇Layout的物件請統一放置在Component Tree中,便可對所使用的物件做有效的應用。



  下面的程式碼為參考網路上的相關資料撰寫而成的,而這部份只局限於JAVA中的MainActivity.java中。

package aixstudio.carryexample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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.TextView;

public class MainActivity extends AppCompatActivity {
    /** Called when the activity is first created. */   
  int s,i,num,f;                      //宣告全域變數    
    int[] ba = new int[64];             //宣告全域變數    
    String [] da = new String[64];    //宣告全域變數    
    String su,sn;                       //宣告全域變數
            @Override    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().setTitle("10進制轉2進制及16進制");
        setContentView(R.layout.activity_main);

        final EditText editText1 = (EditText)findViewById(R.id.Et1);
        final TextView textView4 = (TextView)findViewById(R.id.Tv4 );
        final TextView textView5 = (TextView)findViewById(R.id.Tv5 );
        final Button button1= (Button)findViewById(R.id.Btn1);
        button1.setOnClickListener(new OnClickListener() {
            @Override            public void onClick(View v) {
                   
                /* 這段程式碼為10進位轉換為2進位的程式碼*/                
                i = 0;  su = "";
                
                s = Integer.parseInt(editText1.getText().toString());    //輸入10進位的數值
                while (s > 1)
                {
                    ba[i] = s % 2;
                    i++ ;
                    s = s/2;
                }

                if(s==1 || s==0)
                    ba[i] = s;

                for(int j=i;j>=0;j--)
                    su += String.valueOf(ba[j]);

                 textView4 .setText(su);
                
                /*********************************************************************/                
               /*這段程式為10進位轉成16進位*/                
                f = 0;  sn = "";                                            //宣告變數f為0,sn為空字串                
                num = Integer.parseInt(editText1.getText().toString());     //輸入需轉換的數值
                while ( num > 15 )
                {
                    int temp = num % 16;
                    checkNum(temp);
                    f++;
                    num = num / 16;
                }

                checkNum(num);

                for ( int j = f; j >= 0; j-- )
                    sn += da[j];

                textView5.setText(sn);
                
            }
        });
            }

    //此函式檢查 10 ~ 15 所對應的 16 進位表示法    
      private void checkNum(int cn) {
        if ( cn > 9 )
        {
            if (cn == 10) da[f] = "A";
            else if (cn == 11) da[f] = "B";
            else if (cn == 12) da[f] = "C";
            else if (cn == 13) da[f] = "D";
            else if (cn == 14) da[f] = "E";
            else if (cn == 15) da[f] = "F";
        }
        else            da[f] = String.valueOf(cn);
    }
}
  下圖為使用模擬器所使用的結果。





2018年9月19日 星期三

Android Studio撰寫程式第一課

        目前所使用的版本為Android Studio 3.1.4,而在一般所找到的網路大部份,教初學者撰寫第一隻基本的應用程式,則為"BMI的計算方式....!!!
        
       以下為BMI的公式-->BMI=體重(公斤)/身高公尺2
         範例:
    假設一個人的體重為88公斤,身高為158公分 那套上以上的公式計算一下。

      88/158*158=88/2.4964      計算出來的結果為BMI-->35.12
  
  在Android Studio 3.1.4的版本中有與個地方需特別的注意:

  JAVA的App中原始的程式碼如下:

  

   

  上圖所顯示的為用來將所需的函式庫給放入到JAVA中的MainActivity.java中。


下面的程式碼為參考網路上的相關資料撰寫而成的,而這部份只局限於JAVA中的MainActivity.java中。


package aixstudio.bmi_example;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.text.NumberFormat;


public class MainActivity extends AppCompatActivity {
     TextView tmy;               //宣告全域變數
     EditText h;                //宣告全域變數 
     EditText w;                //宣告全域變數 
   @Override    
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().setTitle("BMI  Example");                 //取得標題名稱
        setContentView(R.layout.activity_main);                          //設定Layout的群組

        h = (EditText)findViewById(R.id.Et1);                           // 取得身高物件
        w = (EditText)findViewById(R.id.Et2 );                           // 取得體重物件
        Button submit = (Button)findViewById(R.id.Btn1 );             // 取得按鈕物件 
              如果ID有誤請回到res->Layout查看預設Button是多少
              // 按下按鈕 觸發事件
        submit .setOnClickListener(new Button.OnClickListener(){
            @Override
public void onClick(View Arg0){
                //判斷條件 身高 跟 體重 都有輸入值才執行                
if ( !("".equals(h.getText().toString())
                        ||"".equals(w.getText().toString())) )
      {
                    float fh = Float.parseFloat(h.getEditableText().toString());      // 取得 身高輸入值
                    float fw = Float.parseFloat(w.getEditableText().toString());     // 取得 體重輸入值
                    float fresult;                                     // BMI值 計算結果
                    TextView result = (TextView)findViewById(R.id.Tv3);// 取得 顯示結果 物件
                    fh = fh/100; // 計算BMI身高(公分轉公尺)
                    fh = fh*fh;  // 計算BMI身高(公尺*公尺)

                    NumberFormat nf = NumberFormat.getInstance();   // 數字格式
                    nf.setMaximumFractionDigits(2);                 // 限制小數第二位
                    fresult = fw/fh;                                // 計算BMI(體重(公斤)/身高(公尺))
                    result.setText("體脂肪" +
                            nf.format(fw/fh) +"Kg/m2。");           // 顯示BMI計算結果
                    tmy= (TextView)findViewById(R.id.Tv4);// 取得 顯示診斷 物件
                                       // 診斷結果 顯示                    

                    if (fresult<18.5)

                         tmy.setText("你的身材過輕,需多吃一點。");

                    else if (18.5 <= fresult && fresult< 24)

                        tmy.setText("你的身材在正常範圍,可以繼續維持下去。");

                    else if (24 <=fresult && fresult < 27)

                        tmy.setText("你的身材過重,而開始注意飲食,並且多運動。");

                    else if (27 <=fresult && fresult < 30)

                        tmy.setText("你的身材輕度肥胖,需配合醫師,並且多運動。");

                    else if (30 <= fresult && fresult < 35)

                        tmy.setText("你的身材中度肥胖,需配合醫師,並且多運動。");

                    else if (fresult >= 35)

                        tmy.setText("你的身材重度肥胖,需配合醫師,並且多運動。");




                }
            }
        } );
    }
}


  Xml的App中的Layout圖如下:
   選擇Layout的物件請統一放置在Component Tree中,便可對所使用的物件做有效的應用。

  
  下圖為Layout出的圖型。


  下圖為使用模擬器所使用的結果。









2018年9月18日 星期二

Android Studio 程式應用修正

 #Android Studio#
         在使用Android Studio這個軟體時,目前所出的版本為3.1.4版,而每個Activaty都會建立兩個檔案,而所建立的檔案如下所示:

   JAVA:APP的功能-->主要是將所有的程式碼全部寫在這個部份...!!!
            XML:APP的介面-->主要是將所設計的介面全部在這做編輯或者編排...!!!


  而在啟動Android Studio的AVD Manager,則需要再更新應用軟體為Haxm-Windows_V7_2_0。

        以下的圖型為程式介面所使用的原件,需特別注意有時在開啟時程式介面無法顥示時
的處理方式如下:

   在Android Studio中的App\res\styles.xml
                         找出<style name=”App Theme”
                       Parent=”Theme.AppCompat.Light.DarkActionbar”>
                         加入Base.

  <style name=”App                                                                             Theme” Parent=”Base.Theme.AppCompat.Light.DarkActionbar”>
            
        加入後便可在Xml設計介面中出現"Hello World的字樣...!!!
     只要按下Android Studio的RUN啟動AVD Manager即可在模擬器出現"Hello Worid的模擬畫面....!!!