Android Open Source - GhostStories Zoomable Relative Layout From Project Back to project page GhostStories .
License The source code is released under:
GNU General Public License
If you think the Android project GhostStories listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.views.layouts;
/ / f r o m w w w . j a v a 2 s . c o m
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.widget.RelativeLayout;
public class ZoomableRelativeLayout extends RelativeLayout {
public ZoomableRelativeLayout(Context pContext) {
super (pContext);
createDetector();
}
public ZoomableRelativeLayout(Context pContext, AttributeSet pAttrs) {
super (pContext, pAttrs);
createDetector();
}
public ZoomableRelativeLayout(Context pContext, AttributeSet pAttrs, int pDefStyle) {
super (pContext, pAttrs, pDefStyle);
createDetector();
}
/*
protected void dispatchDraw(Canvas canvas) {
//canvas.scale(mScaleFactor, mScaleFactor, mScaleX, mScaleY);
canvas.scale(mScaleFactor, mScaleFactor);
canvas.save(Canvas.MATRIX_SAVE_FLAG);
super.dispatchDraw(canvas);
canvas.restore();
}
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//super.onMeasure(widthMeasureSpec*4, heightMeasureSpec*4);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
public boolean onTouchEvent(MotionEvent pEvent) {
mDetector.onTouchEvent(pEvent);
return true;
}
private void createDetector() {
mDetector = new ScaleGestureDetector(getContext(), new ScaleListener());
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
mScaleX = detector.getFocusX() * mScaleFactor;
mScaleY = detector.getFocusY() * mScaleFactor;
return true;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
Log.d("ZoomableRelativePanel" , "scale factor = " + detector.getScaleFactor());
mScaleFactor *= detector.getScaleFactor();
mScaleFactor = Math.max(MIN_ZOOM, Math.min(mScaleFactor, MAX_ZOOM));
invalidate();
requestLayout();
return true;
}
}
private static float MIN_ZOOM = 0.25f;
private static float MAX_ZOOM = 1f;
public float mScaleFactor = 1.f;
public float mScaleX = 0.0f;
public float mScaleY = 0.0f;
private ScaleGestureDetector mDetector;
}
Java Source Code List com.drawable.shapes.GradientRectangle.java com.interfaces.IDraggable.java com.utils.AndroidUtils.java com.utils.AnimationUtils2.java com.utils.ImageLoadingTask.java com.utils.ImageRotationTask.java com.utils.ImageViewUtils.java com.views.NumberedImageView.java com.views.ToggledImageView.java com.views.layouts.ScaledLinearLayout.java com.views.layouts.ScaledRelativeLayout.java com.views.layouts.SquareGridLayout.java com.views.layouts.SquareLinearLayout.java com.views.layouts.SquareTableLayout.java com.views.layouts.ZoomableRelativeLayout.java com.views.listeners.DragTouchListener.java games.ghoststories.activities.GameLoadingActivity.java games.ghoststories.activities.GameScreenActivity.java games.ghoststories.activities.TitleActivity.java games.ghoststories.controllers.GhostDeckController.java games.ghoststories.controllers.HaunterController.java games.ghoststories.controllers.PlayerBoardCardController.java games.ghoststories.controllers.VillageTileController.java games.ghoststories.controllers.combat.CombatAreaController.java games.ghoststories.controllers.combat.DiceDragListener.java games.ghoststories.controllers.combat.GhostDragListener.java games.ghoststories.controllers.combat.TaoTokenDragListener.java games.ghoststories.data.DragData.java games.ghoststories.data.GameBoardData.java games.ghoststories.data.GhostData.java games.ghoststories.data.GhostDeckData.java games.ghoststories.data.GhostGraveyardData.java games.ghoststories.data.GhostStoriesBitmaps.java games.ghoststories.data.GhostStoriesConstants.java games.ghoststories.data.GhostStoriesGameManager.java games.ghoststories.data.PlayerData.java games.ghoststories.data.TokenSupplyData.java games.ghoststories.data.interfaces.IGameBoardListener.java games.ghoststories.data.interfaces.IGamePhaseListener.java games.ghoststories.data.interfaces.IGameTokenListener.java games.ghoststories.data.interfaces.IGhostDeckListener.java games.ghoststories.data.interfaces.IGhostListener.java games.ghoststories.data.interfaces.ITokenListener.java games.ghoststories.data.interfaces.IVillageTileListener.java games.ghoststories.data.village.BuddhistTempleTileData.java games.ghoststories.data.village.CircleOfPrayerTileData.java games.ghoststories.data.village.VillageTileDataFactory.java games.ghoststories.data.village.VillageTileData.java games.ghoststories.enums.EBoardLocation.java games.ghoststories.enums.ECardLocation.java games.ghoststories.enums.EColor.java games.ghoststories.enums.ECombatPhase.java games.ghoststories.enums.EDiceSide.java games.ghoststories.enums.EDice.java games.ghoststories.enums.EDifficulty.java games.ghoststories.enums.EDragItem.java games.ghoststories.enums.EGamePhase.java games.ghoststories.enums.EGhostAbility.java games.ghoststories.enums.EHaunterLocation.java games.ghoststories.enums.EPlayerAbility.java games.ghoststories.enums.ETileLocation.java games.ghoststories.enums.EVillageTile.java games.ghoststories.fragments.AuxAreaFragment.java games.ghoststories.fragments.GameboardFragment.java games.ghoststories.utils.BitmapUtils.java games.ghoststories.utils.GameUtils.java games.ghoststories.utils.XmlUtils.java games.ghoststories.views.GameScreen.java games.ghoststories.views.aux_area.CardInfoView.java games.ghoststories.views.aux_area.GamePhaseDetailsView.java games.ghoststories.views.aux_area.GamePhaseView.java games.ghoststories.views.aux_area.GhostDeckView.java games.ghoststories.views.aux_area.GhostGraveyardCardView.java games.ghoststories.views.aux_area.PlayerInfoView.java games.ghoststories.views.combat.CombatDamageView.java games.ghoststories.views.combat.CombatDiceAreaView.java games.ghoststories.views.combat.CombatDiceView.java games.ghoststories.views.combat.CombatGhostView.java games.ghoststories.views.combat.CombatInstructionsView.java games.ghoststories.views.combat.CombatRollView.java games.ghoststories.views.combat.CombatView.java games.ghoststories.views.combat.ExtraCombatDiceView.java games.ghoststories.views.combat.GhostHealthView.java games.ghoststories.views.common.AbstractNumberedTokenView.java games.ghoststories.views.common.BuddhaTokenView.java games.ghoststories.views.common.QiTokenView.java games.ghoststories.views.common.TaoTokenView.java games.ghoststories.views.common.YinYangTokenView.java games.ghoststories.views.gameboard.PlayerAreaView.java games.ghoststories.views.gameboard.PlayerBoardCardView.java games.ghoststories.views.gameboard.PlayerBoardView.java games.ghoststories.views.gameboard.PlayerTokenAreaView.java games.ghoststories.views.gameboard.VillageTileView.java games.ghoststories.views.graveyard.GraveyardScrollView.java games.ghoststories.views.graveyard.GraveyardView.java games.ghoststories.views.title.TitleButton.java games.ghoststories.views.title.TitleScreen.java games.ghoststories.views.village.CircleOfPrayerView.java