Ich möchte eine Bitmap aus einem ImageView erstellen, aber ich muss zuerst meine ImageView vor dem Konvertieren der Bitmap drehen. Ich verwende den folgenden Code, um ImageView in Bitmap zu konvertieren.Android ImageView zu Bitmap nach dem Drehen
Das ImageView implementiert eine Rotationsgeste. Ich möchte in der Lage sein, das ImageView zu drehen und dann ein Bitmap mit dem gedrehten ImageView zu erstellen. Es scheint jedoch, dass meine Bitmap immer noch die ursprüngliche imageView anstelle der gedrehten Position erhält. Das Folgende ist der vollständige Code. Vielen Dank.
public class MainActivity extends AppCompatActivity implements RotationGestureDetector.OnRotationGestureListener{
private ImageView imgPhoto, imgBackground, imgCombine;
private RotationGestureDetector mRotationDetector;
private Button btnCombine;
private float angle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRotationDetector = new RotationGestureDetector(this);
imgPhoto = (ImageView) findViewById(R.id.imgPhoto);
imgBackground = (ImageView) findViewById(R.id.imgBackground);
collageImage = (ImageView) findViewById(R.id.imgCombine);
btnCombine = (Button)findViewById(R.id.btnCombineImage);
btnCombine.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BitmapDrawable drawable = (BitmapDrawable) imgPhoto.getDrawable();
Bitmap photo = drawable.getBitmap();
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event){
mRotationDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
@Override
public void OnRotation(RotationGestureDetector rotationDetector) {
angle = rotationDetector.getAngle();
Log.d("RotationGestureDetector", "Rotation: " + Float.toString(angle));
imgPhoto.setRotation(imgPhoto.getRotation() + (-angle));
}
}
Ich erhalte eine Methode nicht beheben können Error. Bitmap rotiertPhoto = Bitmap.createBitmap (imgPhoto, 0, 0, imgPhoto.getWidth(), imgPhoto.getHeight(), matrix, true); – Julia