Android SlidingPaneLayoutは新しいQQサイドスライド効果を実現
2173 ワード
まずポイントはレイアウトです.FrameLayoutには2つのレイアウトがネストされています.1つ目はLinearlayoutにImageViewが入っています.このレイアウトの役割は背景です.ImageViewを置くのはスケールを設定するためです.
2つ目のレイアウトは主役のSlidingPaneLayoutです.中には2つのレイアウトが入っています.この横滑りで使えます.ここでFrameLayoutを使うのはFragmentコアコードを使うためです.
@Override
public void onPanelSlide(View panel, float slideOffset) {
int contentMargin = (int) (slideOffset * maxMargin);
FrameLayout.LayoutParams contentParams = contentFragment
.getCurrentViewParams();
contentParams.setMargins(0, contentMargin, 0, contentMargin);
contentFragment.setCurrentViewPararms(contentParams);
float scale = 1 - ((1 - slideOffset) * maxMargin * 2)
/ (float) displayMetrics.heightPixels;
menuFragment.getCurrentView().setScaleX(scale);//
menuFragment.getCurrentView().setScaleY(scale);//
menuFragment.getCurrentView().setPivotX(0);//
menuFragment.getCurrentView().setPivotY(
displayMetrics.heightPixels / 2);
menuFragment.getCurrentView().setAlpha(slideOffset);
}