ええと、このすべてが何週間も私を苦しめます。いつでもwrap_contentにしたい場合でも、高さ227ピクセルの画像を170ピクセルに設定します。
Ok。ここでは、長さ 1950 ピクセルの My Image を使用します (どのように見えるかを理解できるように、その一部をここに示します)。
まず、高さを 227 ピクセルに戻したいと思います。
Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.ver_bottom_panel_tiled_long);
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
int newWidth = 200; //this should be parent's whdth later
int newHeight = 227;
// calculate the scale
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
width, height, matrix, true);
BitmapDrawable dmpDrwbl=new BitmapDrawable(resizedBitmap);
verbottompanelprayer.setBackgroundDrawable(dmpDrwbl);
つまり... これはトリミングされた画像ではありません。いいえ、1950 ピクセルを 200 ピクセルに圧縮したものです。
しかし、この200ピクセルまたは設定する幅以外のものを切り取って、この長い画像全体を200ピクセル領域に押し込まないでください。
また、 BitmapDrawable(Bitmap bitmap); および imageView.setBackgroundDrawable(drawable); 非推奨です - どうすれば変更できますか?