0
単純な変換が必要です。左からイメージを移動する必要があります(アクティビティ&フラグメント1が画面に表示されます) フラグメント(フラグメント)をスクロールしているとき左に向かって起こっている、フラグメント2が右から来ているとイメージも左から右ViewPager Androidのフラグメント間のスムーズな翻訳
に変換する必要がありactivity_intro.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativeLayout"
tools:context="com.example.rahulkumarlohra.retrofitsample.Retro.Activity.IntroActivity">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v4.view.ViewPager>
<ImageView
android:id="@+id/imageView1"
android:src="@mipmap/plus_icon_blue_xxhdpi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="143dp" />
<ImageView
android:id="@+id/imageView2"
android:src="@mipmap/plus_icon_blue_xxhdpi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/viewPager"
android:layout_alignEnd="@+id/viewPager"
android:layout_marginTop="81dp" />
上記のコードはactivity_intro.xmlです
私はViewPagerの外にあるimageViewを持っています。この画像を翻訳したいのですが、ViewPager.Rightの断片を横切って表示します。viewPager.addOnPageChangeListener
を使用してこの画像を翻訳できます。以下は
viewPager.addOnPageChangeListener
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d(TAG,"position:"+position);
Log.d(TAG,"positionOffset:"+positionOffset);
Log.d(TAG,"positionOffsetPixels:"+positionOffsetPixels);
DecimalFormat df = new DecimalFormat("#.##");
float movement = (Float.parseFloat(df.format(positionOffset)));
int rlWidth = relativeLayout.getWidth();
IntroActivity.c = movement;
imageView1.animate().translationX(positionOffsetPixels).start();
if(movement!=IntroActivity.c)
{
if(movement>IntroActivity.c)
{
if(movement-IntroActivity.c>0.03)
{
imageView1.animate().translationX(rlWidth*movement).withLayer().start();
IntroActivity.c = movement;
}
}else {
if(IntroActivity.c-movement>0.03)
{
imageView1.animate().translationX(rlWidth*movement).withLayer().start();
IntroActivity.c = movement;
}
}
}
}
@Override
public void onPageSelected(int position) {
Log.d(TAG,"onPage Selected position:"+position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});