我正在处理viewPager和片段,现在我正在试图获得一个自定义动画,zoom-out page transformation是精确的。viewpager的自定义动画
但是我收到了一些错误。我将把错误置于代码片段的评论中。
类MainActivity
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);/** Getting a reference to the ViewPager defined the layout file */
ViewPager pager = (ViewPager) findViewById(R.id.pager);
/** Getting fragment manager */
FragmentManager fm = getSupportFragmentManager();
/** Instantiating FragmentPagerAdapter */
MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);
/** Setting the pagerAdapter to the pager object */
pager.setAdapter(pagerAdapter);
// **ERROR:The method setPageTransformer(boolean, ViewPager.PageTransformer) in the type ViewPager is not applicable for the arguments (boolean, ZoomOutPageTransformer)**
pager.setPageTransformer(true, new ZoomOutPageTransformer());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
类ZoomOutPageTransformer
import android.view.View;
// **ERROR on 'ViewPager.PageTransformer --> ViewPager cannot be resolved to a type **
public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
private static float MIN_SCALE = 0.85f;
private static float MIN_ALPHA = 0.5f;
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
int pageHeight = view.getHeight();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0);
} else if (position <= 1) { // [-1,1]
// Modify the default slide transition to shrink the page as well
float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
float vertMargin = pageHeight * (1 - scaleFactor)/2;
float horzMargin = pageWidth * (1 - scaleFactor)/2;
if (position < 0) {
view.setTranslationX(horzMargin - vertMargin/2);
} else {
view.setTranslationX(-horzMargin + vertMargin/2);
}
// Scale the page down (between MIN_SCALE and 1)
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
// Fade the page relative to its size.
view.setAlpha(MIN_ALPHA +
(scaleFactor - MIN_SCALE)/
(1 - MIN_SCALE) * (1 - MIN_ALPHA));
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0);
}
}
}
你有没有导入'ViewPager。您声明'ZoomOutPageTransformer'的文件中的PageTransformer'界面? – Luksprog 2013-03-17 20:53:08
代码片段是我所有的,我也做了快捷键'ctrl + shift + o'来获得所有正确的导入。所以我想我有所有需要的进口。 – mXX 2013-03-18 10:30:23
您是否在'ZoomOutPageTransformer'文件中有'import android.support.v4.view.ViewPager.PageTransformer;'?如果不是,你应该拥有它。 – Luksprog 2013-03-18 10:47:40