個人的には、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); } }■実行結果
0 件のコメント:
コメントを投稿