0

我在一个 android 应用程序中工作,我想在 xml 本身中以特定角度设置我的图像视图。我怎样才能做到这一点 ?请帮我。提前致谢。

4

4 回答 4

6

我在一个 android 应用程序中工作,我想在 xml 本身中以特定角度设置我的图像视图。

我不确定上述方法。但以编程方式是可能的。

您可以使用矩阵来旋转图像。

这是工作代码。

package org.sample;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.widget.ImageView;

public class SampleActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView imageView = (ImageView) findViewById(R.id.image);
        Bitmap bm = BitmapFactory.decodeResource(getResources(),
                R.drawable.image);
        imageView.setImageBitmap(rotate(bm, 45.0f));

    }

    Bitmap rotate(Bitmap src, float degree)
    {
        // create new matrix
        Matrix matrix = new Matrix();
        // setup rotation degree
        matrix.postRotate(degree);
        // return new bitmap rotated using matrix
        return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(),
                matrix, true);
    }
}

下面是输出

在此处输入图像描述

如果您的目标是 3.0 或以上平台。那么生活就容易一些。您可以在 ImageView 中放置以下属性

 <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:rotation="45" />
于 2012-06-11T08:06:44.657 回答
1

在 Honeycomb 端较新的 SDK 上,您可以像这样在 XML 中执行此操作:

android:rotationX="10dp"
于 2012-06-11T08:05:24.853 回答
0

有一个更简单的方法。它使用RotateDrawable。谷歌文档很差,但该功能使用起来非常实用。要完成您想要的,只需执行以下操作:

1 - 在 XML 可绘制文件中创建您的 Rotate drawable:

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="120"
    android:interpolator="@android:anim/linear_interpolator"
    android:drawable="@drawable/myImageIwantToRotate"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="360"/>

注意“fromDegrees”。这是您希望图像在加载时旋转的角度。如果您不想以编程方式设置动画或旋转,则无需担心“toDegrees”参数。

2 - 将其添加到您的活动布局中,就像添加常规图像一样,但选择您刚刚创建的 XML 文件(步骤 1)作为 src:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myDrawableXMLfileName"
    android:id="@+id/myRotatedImageID" />

重要提示:必须在res/drawable文件夹中创建 Rotate drawable XML 文件。

于 2017-04-13T14:58:19.570 回答
-1

我认为你需要使用相机翻译功能来做。

 Camera mCamera = new Camera();
 mCamera.translate(0.0f, 0.0f, -295.0f);

我不确定,但我认为它对你有帮助。

谢谢

于 2012-06-11T07:54:21.637 回答