個人的には、ImageView単体で使ったことがなかったので、
便利な機能をいろいろと発見できました。
//イメージビューを生成
ImageView oImage = new ImageView(Context);
画像を設定する方法は3つ
1.ビットマップを読み込む
//ビットマップの作成
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.~) )
//ビットマップを設定
oImage.setImageBitmap(bmp)
2.リソースから読み込む
oImage.setImageResource(R.drawable.~);
3.Drawableから読み込む
oImage.setImageDrawable(getResources().getDrawable(R.drawable.~));
だいたいの流れはこんな感じです。
oImage.setBackgroundResource(R.drawable.~)
とはなにか違いがあるのか??
疑問を持ちました。。。
疑問を持ちました。。。
イメージビューとして生成する意味とかあるのかな??
とか思っていたのですが、
なんか便利な使い方見つけました。。。
setScaleType
画像をいい感じに拡大縮小するメソッドです。
oImage.setScaleType(ImageView.ScaleType.FIT_XY)
CENTER サイズ変更せずにエリアの中央に表示
CENTER_CROP 横幅いっぱいに画像を拡大し中央に表示
FIT_CENTER 縦幅いっぱいに像を拡大し中央に表示
FIT_END 縦幅いっぱいに画像を拡大し右端に寄せて表示
FIT_START 縦幅いっぱいに画像を拡大し左端に寄せて表示
FIT_XY 全体に画像を拡大して表示
イメージビューに用意されているメソッドですので、
ただ単に画像を表示するだけでなく、いろいろと画像を反転されたいな
とか、拡大されたいなってときには、ImageViewは使えそうです。■サンプルソース
package com.example.imageview;
import android.os.Bundle;
import android.app.Activity;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//レイアウトパラム定数(縦横の長さの定数)の格納
final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
final int MP = ViewGroup.LayoutParams.MATCH_PARENT;
super.onCreate(savedInstanceState);
//基礎画面の作成
LinearLayout oLayout = new LinearLayout(getApplicationContext());
oLayout.setOrientation(LinearLayout.VERTICAL);
setContentView(oLayout);
//普通のviewの生成
ImageView oImg = new ImageView(getApplicationContext());
//横MAXの縦幅は画像と同じ高さ
oImg.setLayoutParams(new LinearLayout.LayoutParams(MP, WC));
oImg.setImageResource(R.drawable.ic_launcher);
oLayout.addView(oImg);
//CENTER_CROPさせる画像の生成
ImageView oImgCENTER_CROP = new ImageView(getApplicationContext());
//横幅縦幅ともにMAX
oImgCENTER_CROP.setLayoutParams(new LinearLayout.LayoutParams(MP, MP));
oImgCENTER_CROP.setImageResource(R.drawable.ic_launcher);
oImgCENTER_CROP.setScaleType(ImageView.ScaleType.CENTER_CROP );
oLayout.addView(oImgCENTER_CROP);
}
}
■実行結果