我在用Android翻译非常大的图片时遇到了问题。我想要的是我的图片的高度被设置为屏幕的高度,并显示其余的宽度,而不是改变图像的比率。因为我的图像非常宽,不完整的会首先显示出来,但是随着翻译,我会慢慢地把它移动到x轴上。
我想一定有简单的方法,但我已经花了6个小时观察所有的问题,试图找出我误解的地方,因为我不能像显示的那样显示我的图片--高度设置为全屏的高度和宽度,只要合适,然后显示图片的其他部分,就像翻译的一样。
我的代码:
import android.os.Bundle;
...
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView) findViewById (R.id.background);
ObjectAnimator mover = ObjectAnimator.ofFloat(imageView, "translationX", 0, 1000f);
mover.setDuration(10000);
mover.start();
}
}和简单的布局:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:src="@drawable/background"
android:scaleType="centerCrop">
scaleType与centerCrop和center的区别在于,它们都是这样做的--它们保持图像的比率和高度是屏幕的高度,但是图像被切割,当我制作动画时,立即开始变成白色屏幕,就好像没有更宽的图片一样。centerInside也帮不上忙。
你能帮帮我吗?我已经在这上面浪费了很多小时了。我会很感激的。
发布于 2013-07-25 01:15:10
这里的一种选择是将您的ImageView放在ScrollView中。完成此操作后,您可以创建一个定时器,例如一个TimerTask,它每隔几毫秒将图像缓慢地滚动到屏幕上。
您可以在这里找到更多关于计时器的信息:Android timer? How-to?
一旦定时器设置完毕,只需从scrollView.scrollBy(10, 10)或scrollView.scrollTo(10, 10)内部调用TimerTask来移动ScrollView,这反过来就会转换您附加的ImageView。
https://stackoverflow.com/questions/17847009
复制相似问题