Как повернуть растровое изображение в Android?

Я знаю, что есть темы по этому вопросу уже, но решения, похоже, используют методы класса Matrix, которые больше не работают. Даже после импорта методы не могут быть решены. Я в основном пытаюсь повернуть растровое изображение на 90 градусов, потому что он выходит сбоку, когда я делаю снимок вертикально. Вот мой код для деятельности:

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.camera); this.imageView = (ImageView)this.findViewById(R.id.imageView1); Button photoButton = (Button) this.findViewById(R.id.button1); photoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg"); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); startActivityForResult(intent, CAPTURE_IMAGE_FULLSIZE_ACTIVITY_REQUEST_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { //Check that request code matches ours: if (requestCode == CAPTURE_IMAGE_FULLSIZE_ACTIVITY_REQUEST_CODE) { //Get our saved file into a bitmap object: File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg"); Bitmap bitmap = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700); Intent intent = new Intent(this, EditActivity.class); ByteArrayOutputStream bs = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 50, bs); intent.putExtra("byteArray", bs.toByteArray()); startActivity(intent); } } 

попробуй это:

 public static Bitmap RotateBitmap(Bitmap source, float angle) { Matrix matrix = new Matrix(); matrix.postRotate(angle); return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); } 

Здесь, пожалуйста, передайте растровое изображение или под углом то, что вы хотите показать растровое изображение, например, 90 180 и т. Д., Изменит растровый экран с помощью метода postRotate () класса Matrix и снова создаст растровое изображение и вернет вас

Вы можете добавить TextView в свой макет и установить Bitmap на него

 ImageView yourView = (ImageView)findViewById(imageviewid); Bitmap bitmap = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700); yourView.setImageBitmap(bitmap); 

Возможно, вы можете использовать RotateAnimation в представлении (ImageView, установленном в Bitmap), который вы хотите повернуть, и не забудьте установить анимацию для fillAfter=true и duration=0 .

 <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="90" android:toDegrees="180" android:pivotX="50%" android:pivotY="50%" android:duration="0" android:startOffset="0" /> 

Теперь вам нужно только раздуть анимацию на ваш взгляд

 Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotation); yourView.startAnimation(rotation); 

Или вы можете просто сделать это yourView.setRotation(angle) с API >= 11 .