更新时间:2023-12-02 23:32:28
编辑:图库 OnItemClickListener
gallery.setOnItemClickListener(new OnItemClickListener() {
Bitmap frame = null, out = null;
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Bitmap urImage = BitmapFactory.decodeResource(getResources(),
R.drawable.urBackgroundImageID);//edit
frame = BitmapFactory.decodeResource(getResources(),
frames[arg2]);
out = combineImages(frame, urImage);
imageView.setImageBitmap(out); //add "out" for ur ImageView
}
});
帧[]
是可绘制的阵列,即不同的帧
frames[]
is array of drawables ie different frames
下面的方法将动态结合两个图像
The following method will combine two images dynamically
public Bitmap combineImages(Bitmap frame, Bitmap image) {
Bitmap cs = null;
Bitmap rs = null;
rs = Bitmap.createScaledBitmap(frame, image.getWidth(),
image.getHeight(), true);
cs = Bitmap.createBitmap(rs.getWidth(), rs.getHeight(),
Bitmap.Config.RGB_565);
Canvas comboImage = new Canvas(cs);
comboImage.drawBitmap(image, 0, 0, null);
comboImage.drawBitmap(rs, 0, 0, null);
if (rs != null) {
rs.recycle();
rs = null;
}
Runtime.getRuntime().gc();
return cs;
}
您可以尝试在不同的整数值
You can try different integer values in
comboImage.drawBitmap(image, 0, 0, null);
comboImage.drawBitmap(rs, 0, 0, null);
在这里我已经把 0
来获得所需要的图像帧位置。
where I have put 0
to get needed frame position on the image.