在整个屏幕上旋转图像
问题描述:
我似乎无法在整个屏幕上正确旋转图像。问题是当图像旋转时,您可以在某些区域看到背景。我想让图像在旋转时也填充屏幕。这是布局。我尝试过不同的比例类型,但没有成功。在整个屏幕上旋转图像
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop" />
</LinearLayout>
这里是我使用的代码。
image = (ImageView) findViewById(R.id.image);
image.setBackgroundResource(R.drawable.back_big);
rot = AnimationUtils.loadAnimation(this, R.anim.rotation);
image.startAnimation(rot);
我从onResume
开始动画。正如我所说的,图像旋转但有旋转背景区域。我试过使用比屏幕大得多的图像,但它仍然没有做到我想要的。我不在乎图像的外部区域不可见。我只想旋转填充屏幕。我猜想ImageView
最初设置它的宽度和高度,然后当它旋转时,它使用这些尺寸。有一个更好的方法吗?
答
在仔细观察问题后,我不认为有可能实现我想要的。如果有可能,那就太复杂了,不值得。
答
您正在将ImageView的scaleType设置为“centerCrop”。不幸的是,关于不同scaleTypes的确切含义并没有很好的文档,但名称意味着图像在屏幕上居中并裁剪为ImageView的确切大小。因此,当你开始旋转时,你会看到背景区域。
尝试将scaleType转换为“中心”。
我已经尝试过所有scaleTypes但没有成功。我认为ImageView将图像的初始宽度和高度设置为屏幕的宽度和高度,然后在旋转时不会改变图像的大小。所以我认为它不关系scaleType。 – 2010-07-28 16:35:39