1. 程式人生 > >Android 基礎控制元件(二)

Android 基礎控制元件(二)

##7.ImageView
ImageView直接繼承View,也是非常常用的一種檢視控制元件。

示例程式碼:

<ImageView
    android:id="@+id/testImage"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@mipmap/ic_launcher"
    android:scaleType="center"/>

ImageView最常用的屬性是scaleType,可以設定圖片的縮放或裁剪模式。

至於各個值的作用,可以參考如下這樣圖:
在這裡插入圖片描述

另外,如果我們要在程式碼中設定圖片,有多種方式,除了可以設定工程內的圖片,還可以設定網路圖片。

imageView.setImageResource(resId);
//下載網路圖片後,將圖片轉換為點陣圖資料顯示
imageView.setImageBitmap(bm);
imageView.setImageDrawable(drawable);

8.ProgressBar

Android中的進度條有多種樣式,有無進度的大小圓環形、有帶進度的長條形、有可拖動進度的進度條形、還有用作評價的星星進度條。

小圓進度條

小圓進度條,也可以當做網路請求時的loading用。

<ProgressBar
    android:id="@+id/nomalProgress"
    style="?android:attr/progressBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

反向小圓進度條

同上,只是旋轉反向是逆時針旋轉。

<ProgressBar
        android:id="@+id/nomalProgress"
        style="?android:attr/progressBarStyleSmallInverse"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

大圓進度條

大圓進度條與小圓進度條一樣,只是更大一些罷了。

<ProgressBar
        android:id="@+id/nomalProgress"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

反向大圓進度條

<ProgressBar
        android:id="@+id/nomalProgress"
        style="?android:attr/progressBarStyleLargeInverse"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

橫向帶進度的進度條

<ProgressBar
        android:id="@+id/nomalProgress"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="200"
        android:progress="50"/>

還有這種寫法:

<ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
        android:max="200"
        android:progress="50"/>

可拖動的進度條
SeekBar,可以拖動的進度條,一般用做音樂的進度條等。

<SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="200"
        android:progress="50"/>

星星進度條

RatingBar 星星進度條一般可用作評價時,最小可選單位是0.3顆星。
用stepSize來設定,一般設定0.5或者1。

<RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:rating="1"
        android:stepSize="1"/>

9.DatePicker/TimePicker

日期選擇器

<DatePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

初始化日期選擇器的日期

DatePicker datePicker = (DatePicker)findViewById(R.id.datePicker);
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        // 初始化日期
        datePicker.init(year, month, day, this);
        
    @Override
    public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
        Log.e("MainActivity", i + "#" + i1 + "#" + i2);
    }

時間選擇器

 <TimePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
</TimePicker>

程式碼設定時間

TimePicker timePicker = (TimePicker)findViewById(R.id.content_timePicker);
timePicker.setIs24HourView(true);
timePicker.setOnTimeChangedListener(this);
        
    @Override
    public void onTimeChanged(TimePicker timePicker, int i, int i1) {
        Log.e("MainActivity", i + ":" + i1);
    }