學徒淺析Android開發:第四講——ImageView圖片你的控制

                  這是TeachDemo的最後一頁內容,作爲最後的內容,小編決定介紹一點簡單實用的東西,關於圖片的所發問題,對於ImageView中引用的圖片一直和其自身所在的View是有領土糾紛的。這時我們要設置圖片樣式以此來設置圖片合理的顯示在view中。但ImageView很不給面子,一次提供了七個樣式供我們選擇。這讓當初的我頭疼不已。現在小編就帶大家區分這其中樣式,看他們各有什麼不同。

 這次是在FourFragment中構建本次例子。

package com.teach.demo;
/**
 * @author Arthur Lee
 * @time 04/08/2014
 * */
import java.util.ArrayList;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.RadioButton;

public class FourthFragment extends Fragment{
	//緩存視圖
	private View view;
	private Button bt_fitXY,bt_fitStart,bt_fitCenter,bt_fitEnd,
	               bt_center,bt_centerCrop,bt_centerinside;
	private ImageView image;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	}
    
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		//如果當前視圖爲空,初始化視圖
		if(view == null){
			//指定當前視圖在viewpager中顯示的是view_first。xml,通過LayoutInflater來指定.
			view = inflater.inflate(R.layout.view_fourth, null);
		}
		//指定當前視圖的父類,以便調用父類的移除功能。
	    ViewGroup parent = (ViewGroup) view.getParent();
	    if (parent != null) {
			parent.removeView(view);
		}
	
	    bt_fitXY = (Button)view.findViewById(R.id.fourth_fitXY);
	    bt_fitStart = (Button)view.findViewById(R.id.fourth_fitStart);
	    bt_fitEnd = (Button)view.findViewById(R.id.fourth_fitend);
	    bt_fitCenter = (Button)view.findViewById(R.id.fourth_fitcenter);
	    bt_center = (Button)view.findViewById(R.id.fourth_center);
	    bt_centerCrop = (Button)view.findViewById(R.id.fourth_centerCrop);
	    bt_centerinside = (Button)view.findViewById(R.id.fourth_centerinside);
	    image = (ImageView)view.findViewById(R.id.image);
	    image.setImageResource(R.drawable.test);
	    bt_fitXY.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * FIT_XY格式,就是拉伸圖片,直到當前圖片完全覆蓋當前的view*/
				image.setScaleType(ScaleType.FIT_XY);
			}
		});
        bt_fitStart.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * FIT_START格式,只拉伸圖片的高,居左對齊,直到當前圖片的高等於當前的view的高*/
				image.setScaleType(ScaleType.FIT_START);
			}
		});
        bt_fitEnd.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * FIT_END格式,只拉伸圖片的高,居右對齊,直到當前圖片的高等於當前的view的高*/
				image.setScaleType(ScaleType.FIT_END);
			}
		});
        bt_fitCenter.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * FIT_CENTER格式,只拉伸圖片的高,居中對齊,直到當前圖片的高等於當前的view的高*/
				image.setScaleType(ScaleType.FIT_CENTER);
			}
		});
        bt_center.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * CENTER格式,按圖片大小顯示,居中放置*/
				image.setScaleType(ScaleType.CENTER);
			}
		});
        bt_centerinside.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * CENTER_INSIDE格式,自動縮放圖片,保持圖片的高等於view的高。居中放置*/
				image.setScaleType(ScaleType.CENTER_INSIDE);
			}
		});
        bt_centerCrop.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				/**
				 * CENTER_CROP格式,按比例放大原圖的寬和高,直到圖片的高等於view的高,居中放置*/
				image.setScaleType(ScaleType.CENTER_CROP);
			}
		});
		return view;
	}

}


具體效果圖如下:

原圖:


fitXY格式:


fitStart格式:


fitCenter格式:


fitend格式:

centerinside格式:


centerCrop格式:




最後還是用一句話結束:我不是一個好的程序員,因爲我只會默默奉獻。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章