Android에서 비트 맵을 90도 회전하고 싶습니다. 그리고 저는 새로운 인스턴스를 얻고 싶지 않습니다. 이 문제를 해결할 방법이 있습니까? 아이디어가 있습니다 : 그냥 비트 맵의 픽셀을 회전하십시오. 그러나 나는 그것을 할 수 없다.비트 맵의 픽셀을 회전하는 방법
temp = Bitmap.createBitmap(temp, 0, 0, w, h, matrix, false);
Android에서 비트 맵을 90도 회전하고 싶습니다. 그리고 저는 새로운 인스턴스를 얻고 싶지 않습니다. 이 문제를 해결할 방법이 있습니까? 아이디어가 있습니다 : 그냥 비트 맵의 픽셀을 회전하십시오. 그러나 나는 그것을 할 수 없다.비트 맵의 픽셀을 회전하는 방법
temp = Bitmap.createBitmap(temp, 0, 0, w, h, matrix, false);
이 작동 :
http://warting.github.com/AndroidBitmapRotate/
대답이 링크에public class RotateBitmapActivity extends Activity {
ImageView iv;
private Bitmap bitmap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
iv = (ImageView) findViewById(R.id.ImageView01);
findViewById(R.id.left).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
rotate(-90F);
}
});
findViewById(R.id.right).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
rotate(90F);
}
});
}
private void rotate(float degrees) {
Matrix rotateMatrix = new Matrix();
rotateMatrix.postRotate(degrees);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), rotateMatrix, true);
iv.setImageBitmap(bitmap);
}
}
대답 해줘. 비트 맵을 샘에게 보내고 싶다. e 인스턴스. 당신의 해상도는 두가지 다른 인스턴스를 가질 것입니다. 나는 imageview refrence를 가질 수 없습니다. – jhondge
왜 중요한지 모르겠다. 비트 맵을 보유하고 대신 클래스에 대한 참조를 유지하는 사용자 정의 클래스를 만드는 경우 작동하겠습니까? –
: http://stackoverflow.com/questions/2968397/algorithm-to-rotate-an- image-90-degrees-in-place-no-extra-memory – Shrikant
매트릭스를 정의하는 방법에 대한 코드 추가 –
'매트릭스 매트릭스 = new 매트릭스 (매트릭스) .setRotate (90);' – jhondge