Android 台灣中文網

標題: 關於ImageView [打印本頁]

作者: 名字真難取    時間: 2012-12-3 22:31
標題: 關於ImageView
本帖最後由 名字真難取 於 2012-12-3 22:46 編輯

最近在練習寫一個BMI計算機,網路上範例也頗多的,所以想要自己稍微修改

網路上的有一個是由TextView、EditText和Buttom所組成的

但是我覺得太單調,所以想要加一個ImageView

當使用者計算出BMI值後,會跑出一張圖片,讓使用者知道自己的體型為何


以下附上程式碼

package com.project.android.bmi;

import java.text.DecimalFormat;

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 Bmi extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

         //Listen for button clicks
         Button button = (Button)findViewById(R.id.submit);
         button.setOnClickListener(calcBMI);
     }

     private OnClickListener calcBMI = new OnClickListener()
     {
         public void onClick(View v)
         {
             DecimalFormat nf = new DecimalFormat("0.00");
             EditText fieldheight = (EditText)findViewById(R.id.height);
             EditText fieldweight = (EditText)findViewById(R.id.weight);
             double height = Double.parseDouble(fieldheight.getText().toString())/100;
             double weight = Double.parseDouble(fieldweight.getText().toString());
             double BMI = weight / (height * height);

             TextView result = (TextView)findViewById(R.id.result);
             result.setText("你的BMI是 "+nf.format(BMI));

             TextView fieldsuggest = (TextView)findViewById(R.id.suggest);
             if(BMI>25){
                 fieldsuggest.setText(R.string.advice_heavy);
                 
             }else if(BMI<20){
                 fieldsuggest.setText(R.string.advice_light);
             }else{
                 fieldsuggest.setText(R.string.advice_average);
             }
         }
     };
}

我執行後他有圖片,但是都固定同一張

我希望圖片能跟隨計算出來的BMI值做改變

還有,ImageView的初始值要怎麼設定成null

這邊程式碼就不知道該怎麼寫了(圖片已經丟進Drawable資料夾裡了)

麻煩前輩們教導小弟一下,感激不盡^^
作者: ploglin    時間: 2012-12-4 09:14
一樣在 xml 中要定義 ImageView ,然後在 Activity 中....

  1. // 定義 ImageView
  2. ImageView resultImage = (ImageView )findViewById(R.id.result_image);

  3. // 切換圖片的方法
  4. resultImage.setImageResource(R.drawable.xxxxx);
複製代碼

作者: 名字真難取    時間: 2012-12-4 11:13
那請問一下,如果要設定圖片初始值為null  方法為何?
作者: ploglin    時間: 2012-12-4 11:21
不知道你為什麼要設定成 null

如果以變數來說

  1. // 只定義變數,沒有給值,那這個變數的值就是 null
  2. ImageView resultImage;
複製代碼

作者: 名字真難取    時間: 2012-12-4 11:29
ㄜ... 我只是要設定ImageView一開始為不可見而已(就是沒圖片)

謝謝^^
作者: ploglin    時間: 2012-12-4 11:34
xml 中可以宣告
android:visibility="gone"
或是在 activity 中設定
resultImage.setVisibility(View.GONE);
作者: 名字真難取    時間: 2012-12-11 10:42
版主,請問一下
ImageView resultImage = (ImageView )findViewById(R.id.result_image);

應該放在public裡還是要用時再放上去??
作者: ploglin    時間: 2012-12-11 13:25
兩邊都可以,看你要怎麼使用而已。




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1