显示比设备屏幕大的图像,然后通过翻译动画浏览图片
Display a image larger than the device screen, and then go through the picture with a translation animation
现在我知道如何制作translateAnimation,以便通过图片并将其显示在屏幕上。
我不知道该怎么做,将图片放在屏幕上,并以这样的方式制作它,使其不会按比例类型缩放。所以我可以启动 translateAnimation。
我看到了一些关于这个的帖子,很多建议都说我应该使用 HorrizontalScrollView,以便放置比设备屏幕大的图片。但是我需要制作一个动画,而不是让我能够移动图片,所以在我看来这可能不是完美的方式。
大家还有什么建议吗?
没有使用horrizontalScrollView,而是强制整个布局的宽度为图片大小,在里面设置一个RelativeLayout,配合屏幕大小,然后做动画。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="1103dp"
android:layout_height="736dp"
android:background="@color/white">
<ImageView
android:id="@+id/background"
android:visibility="invisible"
android:src="@drawable/story1"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:id="@+id/screen_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
-----------------CODE inside relative layout for normal page--------
</RelativeLayout>
</RelativeLayout>
然后在我的代码中为我的屏幕容器设置屏幕宽度和高度(包含除将翻译的背景图片之外的所有内容):
screenContainer.setLayoutParams(new RelativeLayout.LayoutParams(Math.round(Constants.screenWidth), Math.round(Constants.screenHeight)));
这是我对与父级(背景图片的大小)匹配的 ImageView 的翻译:
TranslateAnimation translateBackground = new TranslateAnimation(
TranslateAnimation.RELATIVE_TO_PARENT,from,
TranslateAnimation.RELATIVE_TO_PARENT,-0.5f,
TranslateAnimation.RELATIVE_TO_PARENT,0.0f,
TranslateAnimation.RELATIVE_TO_PARENT,0.0f);
translateBackground.setDuration(15000);
background.setVisibility(View.VISIBLE);
background.startAnimation(translateBackground);
现在我知道如何制作translateAnimation,以便通过图片并将其显示在屏幕上。 我不知道该怎么做,将图片放在屏幕上,并以这样的方式制作它,使其不会按比例类型缩放。所以我可以启动 translateAnimation。 我看到了一些关于这个的帖子,很多建议都说我应该使用 HorrizontalScrollView,以便放置比设备屏幕大的图片。但是我需要制作一个动画,而不是让我能够移动图片,所以在我看来这可能不是完美的方式。 大家还有什么建议吗?
没有使用horrizontalScrollView,而是强制整个布局的宽度为图片大小,在里面设置一个RelativeLayout,配合屏幕大小,然后做动画。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="1103dp"
android:layout_height="736dp"
android:background="@color/white">
<ImageView
android:id="@+id/background"
android:visibility="invisible"
android:src="@drawable/story1"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:id="@+id/screen_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
-----------------CODE inside relative layout for normal page--------
</RelativeLayout>
</RelativeLayout>
然后在我的代码中为我的屏幕容器设置屏幕宽度和高度(包含除将翻译的背景图片之外的所有内容):
screenContainer.setLayoutParams(new RelativeLayout.LayoutParams(Math.round(Constants.screenWidth), Math.round(Constants.screenHeight)));
这是我对与父级(背景图片的大小)匹配的 ImageView 的翻译:
TranslateAnimation translateBackground = new TranslateAnimation(
TranslateAnimation.RELATIVE_TO_PARENT,from,
TranslateAnimation.RELATIVE_TO_PARENT,-0.5f,
TranslateAnimation.RELATIVE_TO_PARENT,0.0f,
TranslateAnimation.RELATIVE_TO_PARENT,0.0f);
translateBackground.setDuration(15000);
background.setVisibility(View.VISIBLE);
background.startAnimation(translateBackground);