我在Android应用程序中工作,我想在xml本身中以特定角度设置我的图像视图。我怎样才能做到这一点 ?请帮我。提前致谢。
答案 0 :(得分: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" />
答案 1 :(得分:1)
在Honeycomb端更新的SDK上,您可以使用XML执行此操作:
android:rotationX="10dp"
答案 2 :(得分: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"/>
注意&#34; fromDegrees&#34;。这是您希望图像在加载时旋转的角度。如果您不想以编程方式设置动画或旋转,则无需担心&#34; toDegrees&#34;参数。
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 文件夹中创建旋转可绘制XML文件。
答案 3 :(得分:-1)
我认为你需要使用Camera translate功能来做。
Camera mCamera = new Camera();
mCamera.translate(0.0f, 0.0f, -295.0f);
我不确定,但我觉得它对你有帮助。
由于