我在一个 android 应用程序中工作,我想在 xml 本身中以特定角度设置我的图像视图。我怎样才能做到这一点 ?请帮我。提前致谢。
问问题
3841 次
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 回答