在我的活动中,我只有一个 ImageView。其中,src 是一张比屏幕大很多的图片。我希望图片从左到右缓慢滚动,直到到达照片的右边距,然后开始向左滚动,直到到达左边距。然后重新开始。我需要它发生在一个单独的线程中,这样手机就不会在发生这种情况时冻结。
我怎样才能做到这一点?是否有默认情况下执行此操作的小部件?
更新代码 // 布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mylinear"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/rainforest" />
</RelativeLayout>
// 和活动
public class MainActivity extends Activity {
Animation _translateAnimation;
RelativeLayout _relativeLoading = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
_translateAnimation = new TranslateAnimation(TranslateAnimation.ABSOLUTE, 0f, TranslateAnimation.ABSOLUTE, -100f, TranslateAnimation.ABSOLUTE, 0f, TranslateAnimation.ABSOLUTE, 0f);
_translateAnimation.setDuration(5000);
_translateAnimation.setRepeatCount(-1);
_translateAnimation.setRepeatMode(Animation.REVERSE); // REVERSE
_translateAnimation.setInterpolator(new LinearInterpolator());
_relativeLoading = (RelativeLayout) findViewById(R.id.mylinear);
_relativeLoading.startAnimation(_translateAnimation);
}
但它脱离了画面。我的意思是,滚动从左到右,将图片“推”到左边并在 ImageView 下方显示白色背景。
另外,这应该在线程内还是什么?我需要能够以某种方式退出此“滚动”活动,而无需使用“后退”按钮。我想要 ImageView 顶部的按钮(按钮应该保持静止)并且 onClick 它应该启动另一个 Intent
似乎 ImageView 内的图片被裁剪以适合屏幕。我该如何克服呢?