Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android控件介紹

Android控件介紹

編輯:關於Android編程

Android控件介紹

多選按鈕(CheckBox)

CheckBox有兩個常用的事件,OnClickListener事件和OnClickChangeListener事件




    
    



效果如下:

這裡寫圖片描述

代碼:

package com.example.z1178.test;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;


public class MainActivity extends Activity {

    private static final String TAG=debug;
    private CheckBox eat_checkBox;
    private CheckBox sleep_checkBox;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linear_layout);


        eat_checkBox=(CheckBox)findViewById(R.id.eat_checkBox);
        sleep_checkBox=(CheckBox)findViewById(R.id.sleep_checkBox);

        OnCheckBoxClickListener  listener1=new OnCheckBoxClickListener();
        CompoundButton.OnCheckedChangeListener listener2=new OnCheckedChangeListener();
        //綁定點擊事件
        eat_checkBox.setOnClickListener(listener1);
        sleep_checkBox.setOnClickListener(listener1);
        //綁定狀態改變事件
        eat_checkBox.setOnCheckedChangeListener(listener2);
        sleep_checkBox.setOnCheckedChangeListener(listener2);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    class OnCheckBoxClickListener implements View.OnClickListener{

        @Override
        public void onClick(View v) {
            CheckBox box=(CheckBox)v;
            int id=v.getId();
            switch (id){
                case R.id.eat_checkBox:Log.d(TAG,eat_checkBox is clicked!: + box.isChecked());break;
                case R.id.sleep_checkBox:Log.d(TAG, sleep_checkBox is clicked: + box.isChecked());break;
            }
        }
    }

    class OnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            CheckBox box=(CheckBox)buttonView;
            Log.d(TAG,box.getText()+ checkBox changed ,its statue is +isChecked);

        }
    }

}

若要在界面上增加全選按鈕,則先在xml中增加相應的控件,然後在代碼中獲取該對象,然後綁定OnClickChangeListener事件,關鍵代碼如下:

  @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            CheckBox box=(CheckBox)buttonView;
            int id=box.getId();
            if(id!=R.id.checkall_checkBox){
                Log.d(TAG,box.getText()+ checkBox changed ,its statue is +isChecked);
            }else{
                    eat_checkBox.setChecked(isChecked);
                    sleep_checkBox.setChecked(isChecked);
            }


        }

單選按鈕(RadioButton)

單選按鈕有RadioButton和RadioGroup,其事件與CheckBox一樣,也有OnClickListener事件和OnClickChangeListener事件,不再贅述。

ImageView

配置控件:




    


我們也可以通過在代碼中設置圖片

imageView.setImageResource(R.drawable.layout_image);

imageView為ImageView對象,R.drawable.layout_image為drawable中的圖片

ScaleType

ScaleType可以控制圖片的相關屬性,其屬性如下:

屬性 CENTER CENTER_CROP CENTER_INSIDE FIT_CENTER(START,END) FITXY



    

    


效果如圖:

這裡寫圖片描述

其中,我們設置了圖片的width和height為100dp,scaleType為fitCenter,同時設置了背景色,圖片會按照width和height等比例縮放,不夠的地方背景色填充。

若其中一個的scaleType為fitStart時,效果如下:

這裡寫圖片描述

scaleType為center時:

這裡寫圖片描述

此時圖片大於規定的尺寸,則進行裁剪,小於規定尺寸的則居中顯示,注意此時無背景色了。

scaleType為centerInside時:

這裡寫圖片描述

centerInside與centerFit的區別是,當圖片過大時,兩者沒有區別,但是當圖片小於規定尺寸時,centerFit會進行放大以適應尺寸,而centerInside不會這樣做,只是放在中央。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPnNjYWxlVHlwZc6qY2VudGVyQ3JvcMqxo7o8L3A+DQo8cD48aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20150723/2015072308300839.png" title="\" />

centerCrop為圖片的短邊於尺寸短邊按比例縮放,長邊過長則截取掉,因此其是沒有背景色的。

當然,我們也可以在代碼中實現圖片的縮放。

imageView.setScaleType(ScaleType.CENTER);

其參數為枚舉類型。

TimePicker和DatePicker

TimePicker和DatePicker均有OnTimeChangedListener事件。




    

    

    


    

package com.example.z1178.test;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TimePicker;


public class MainActivity extends Activity {

    private static final String TAG=debug;
    private TimePicker timePicker;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linear_layout);

        timePicker=(TimePicker)findViewById(R.id.timePicker);
        timePicker.setIs24HourView(true);

        //設置監聽器和綁定事件
        timePickerChangedListener listener=new timePickerChangedListener();
        timePicker.setOnTimeChangedListener(listener);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    class timePickerChangedListener implements TimePicker.OnTimeChangedListener{

        @Override
        public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
            Log.d(TAG,hourOfDay+:+minute);
        }
    }

}



默認情況下,時間顯示的是當前系統時間,我們可以在代碼中設置時間,還有,我們可以通過頁面上的按鈕設置監聽器來獲得時間。注意,月份是從0開始的 。

AnalogClock和DigitalClock這裡就不介紹了。

ProgressBar,SeekBar和RatingBar

ProgressBar的屬性:

屬性1 屬性2 方法 水平風格 (Horizontal) 判斷是否是圓形進度條(isIndeterminated) 最大進度(max) 小風格 (Samll) 增加進度(incrementProgressBy) 當前進度(progress) 大風格 (Large ) 增加第二進度(incrementSecondProgressBy) 第二進度(secondProgress) 反向風格 (Large.Inverse)     大反向風格 (Inverse)     小反向風格 (Samll.Inverse)    

SeekBar的監聽事件

事件 onProgressChanged(SeekBar seekBar,int progress,boolean fromUser) onStartTrackingTouch(SeekBar seekBar) onStopTrackingTouch(SeekBar seekBar)

RatingBar的屬性:

屬性 事件 星星個數(numStars) onRatingBarChanged(RatingBar ratingBar,float rating,boolean fromUser) 當前等級(progress)   stepSize  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved