我在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也没有帮助。
你能帮帮我吗?我已经失去了这么多时间。我真的很感激。答案 0 :(得分:1)
此处的一个选项是将ImageView
放在ScrollView
内。执行此操作后,您可以创建一个计时器,例如TimerTask
,每隔几毫秒就会在屏幕上缓慢滚动图像。
您可以在此处找到有关计时器的更多信息:Android timer? How-to?
设置计时器后,只需从TimerTask中调用scrollView.scrollBy(10, 10)
或scrollView.scrollTo(10, 10)
即可移动ScrollView
,然后转换为附加的ImageView
。