Étant donné une image, je souhaite pouvoir mettre à l'échelle seulement une partie de cette image. Dites, je veux étendre la moitié de l'image de sorte que, cette moitié occupe tout l'espace.Android: Redimensionnement et redimensionnement d'une partie de l'image
Comment est-ce possible?
Est-ce que ImageView fitXY fonctionnera parce que je pensais que cela ne fonctionnera que pour l'image originale entière.
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linearLayout = new LinearLayout(this);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int newWidth = 640;
int newHeight = 480;
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// create the new Bitmap object
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 50, 50, width,
height, matrix, true);
BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
imageView.setScaleType(ScaleType.CENTER);
linearLayout.addView(imageView, new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setContentView(linearLayout);
}
}
Cela ne fonctionne que si CreateBitmap, les coordonnées X et Y des premiers pixels de la source sont 0. sens, je ne suis pas en mesure de prendre un sous-ensemble de l'image. Seulement capable de mettre à l'échelle l'image entière. Mais createBitmap est destiné à sous-créer une image.
Dans le journal, lorsque les paramètres ne sont pas 0, je reçois l'exception suivante: java.lang.IllegalArgumentException: x + largeur doit être < = Bitmap.Width()
S'il vous plaît aider