2010-07-28 138 views
2

我似乎无法在整个屏幕上正确旋转图像。问题是当图像旋转时,您可以在某些区域看到背景。我想让图像在旋转时也填充屏幕。这是布局。我尝试过不同的比例类型,但没有成功。在整个屏幕上旋转图像

<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最初设置它的宽度和高度,然后当它旋转时,它使用这些尺寸。有一个更好的方法吗?

回答

0

在仔细观察问题后,我不认为有可能实现我想要的。如果有可能,那就太复杂了,不值得。

0

您正在将ImageView的scaleType设置为“centerCrop”。不幸的是,关于不同scaleTypes的确切含义并没有很好的文档,但名称意味着图像在屏幕上居中并裁剪为ImageView的确切大小。因此,当你开始旋转时,你会看到背景区域。

尝试将scaleType转换为“中心”。

+0

我已经尝试过所有scaleTypes但没有成功。我认为ImageView将图像的初始宽度和高度设置为屏幕的宽度和高度,然后在旋转时不会改变图像的大小。所以我认为它不关系scaleType。 – 2010-07-28 16:35:39