这是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格式:
最后还是用一句话结束:我不是一个好的程序员,因为我只会默默奉献。