final ImageView imgview = (ImageView) findViewById(R.id.imageView1);
new Thread() {
public void run() {
Bitmap bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.a);//原图片
final Bitmap new_bmp = bmp.copy(bmp.getConfig(), true);
int width = bmp.getWidth();
int height = bmp.getHeight();
for (int i = 0; i < width; i++)
for (int j = 0; j < height; j++) {
new_bmp.setPixel(width - i - 1, j, bmp.getPixel(i, j));
}
imgview.post(new Runnable() { @Override
public void run() {
imgview.setImageBitmap(new_bmp);
}
});
};
};

解决方案 »

  1.   

    自己做了下测试,发现其实不用把过程搞得那么复杂 ,代码如下             
     
                            img.setDrawingCacheEnabled(true);
    Bitmap mb=img.getDrawingCache();
    Matrix mt = new Matrix();
    mt.postScale(1, -1);
    mt.postRotate(180);
    img.setImageBitmap(Bitmap.createBitmap(mb, 0, 0,
    mb.getWidth(), mb.getHeight(), mt, true));
      

  2.   

    因为图是打印机要的,并非显示就可以,所以mt.postRotate(180);打印出来的图才正确。