-1

向きに応じてImageButtonsを回転させたい。しかし、活動を再開することなく。画像は回転するはずですが、ビューは回転しないはずです。【例:デフォルトのカメラアプリ】何かアイデアはありますか?向きを修正する必要があると思います(android:screenOrientation = "portrait")。

電話を回転させても、アクティビティは再構築されません。ただし、下部(または側面)のアイコンは回転します。これどうやってするの?

http ://www.youtube.com/watch? v = hT3stvtv_1c at 00:40-アイコンだけが回転し、穴のビューは回転しません

4

4 に答える 4

5
Matrix matrix = new Matrix();
Bitmap b;
//...
imageView.setImageBitmap(b);
//...
// screen rotation
matrix.postRotate(90);
b = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), matrix, true);
imageView.setImageBitmap(b);
于 2012-09-18T14:27:47.213 に答える
4

ExifInterfaceを使用してファイルから回転情報を取得できます

Matrix matrix = new Matrix();
    int orientation = 1;
    try {
        ExifInterface exif = new ExifInterface(filePath);
        orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
    } catch (IOException e) {
        e.printStackTrace();
    }
    matrix.setRotate(0);
    switch (orientation) {
    case ExifInterface.ORIENTATION_ROTATE_90:
        matrix.setRotate(ROTATION_DEGREE);
        break;
    case ExifInterface.ORIENTATION_ROTATE_180:

        matrix.setRotate(ROTATION_DEGREE * 2);
        break;
    case ExifInterface.ORIENTATION_ROTATE_270:
        matrix.setRotate(-ROTATION_DEGREE);
        break;
    default:
        break;
    }
于 2012-09-18T14:38:14.683 に答える
1

ボタンをクリックして画像を動的に回転させたい場合は、グローバルに定義します

     int angle; int valueangle = 0; 

ボタンのonclickを使用しますmrotate.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {

            // TODO Auto-generated method stub
     ImageView mainimage22 = (ImageView) findViewById(R.id.mainimage22);
     Bitmap myImg = BitmapFactory.decodeResource(getResources(), R.drawable.image);

            angle = valueangle + 90;
            valueangle = angle;
            System.out.println("valueangle"+valueangle);
            if(valueangle == 360){
                valueangle=0;
                System.out.println("00"+valueangle);
            }
            System.out.println("angle"+angle);

            main_img.setVisibility(View.INVISIBLE);

            Matrix matrix = new Matrix();
            matrix.postRotate(angle);

            Bitmap rotated = Bitmap.createBitmap(myImg , 0, 0,
                    myImg .getWidth(), myImg .getHeight(), matrix, true);


            mainimage22.setImageBitmap(rotated);

        }
    });
于 2013-06-12T05:56:01.833 に答える
0

メソッドを使用OrientationEventListenerして実装しましたonOrientationChanged(int orientation)。私のMainActivityで。これは強制的に縦向きになります。呼び出しのインスタンスを作成し、回転の追跡を開始します。

パブリッククラスRotationDetectorはOrientationEventListenerを拡張します

私のMainActivityで:

mOrientationListener = new RotationDetector(this); mOrientationListener.enable();

disable()もう使用しないときは、忘れないでください。そして、MaliEGLエラーに注意してください。

于 2013-12-18T09:50:59.830 に答える