<< Android-Note
Drawableのリサイズ方法
BitmapクラスならsetDensityメソッドやcreateScaledBitmapメソッドを使えば簡単に画像をリサイズできます。
そうではなくDrawableクラスを使って画像をリサイズするときは少し工夫がいります。
例えば200x200の大きさの画像でDrawableを作り、それを100x100の大きさにリサイズしたい場合は次のコードを書きます。
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Drawable drawable = Drawable.createFromPath("/data/data/com.MyApp.myapp/images/character1.png"); //画像のあるパスからdrawableを生成 Bitmap orgBitmap = ((BitmapDrawable)drawable).getBitmap(); //DrawableからBitmapインスタンスを取得 Bitmap resizedBitmap = Bitmap.createScaledBitmap(orgBitmap, 100, 100, false); //100x100の大きさにリサイズ drawable = new BitmapDrawable(getResources(), resizedBitmap); final ImageView imageView = (ImageView)findViewById(R.id.imageView); imageView.setImageDrawable(drawable); } }
このようにいったんBitmapに変換してそれを目的の大きさにリサイズしてからDrawableに再変換すれば自由に大きさを変更できます。
© Kaz