web-dev-qa-db-ja.com

レイアウトxmlファイルからImageViewソースを回転させる

私のレイアウトにこのImageViewがあります:

<ImageView Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:contentDescription="@string/image_divider"
        Android:paddingBottom="8dp"
        Android:paddingTop="4dp"
        Android:scaleType="fitXY"
        Android:src="@Android:drawable/divider_horizontal_textfield" />

それは水平な仕切りです。私はそれを90度回転させたいので、垂直な仕切りがあります。
アクティビティクラスではなく、レイアウトからここで行う方法はありますか?

41
mehrmoudi

Available Since API Level 11を使用できます

Android:rotation="90"

置く最終コード、

<ImageView Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:rotation="90"
        Android:contentDescription="@string/image_divider"
        Android:paddingBottom="8dp"
        Android:paddingTop="4dp"
        Android:scaleType="fitXY"
        Android:src="@Android:drawable/divider_horizontal_textfield" />
140
Rinkal Bhanderi

ImageViewに「id」を追加します(自動を生成しない場合):

 Android:id="@+id/imageView"

「id」を使用します(kotlinの例):

val imageView = findViewById<ImageView>(R.id.imageView)
imageView.setRotation(90f) // rotate 90 degree
1

新しいビットマップオブジェクトを作成することで、コードでそれを行うことができます。これをチェックしてください: http://Android-er.blogspot.fr/2010/07/rotate-bitmap-image-using-matrix.html そして、特にこの関数

Matrix matrix = new Matrix();
matrix.postScale(curScale, curScale);
matrix.postRotate(curRotate);

Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bmpWidth, bmpHeight, matrix, true);
myImageView.setImageBitmap(resizedBitmap);
1
Stephane Mathis