Toast.makeText(this, "(" + dm.widthPixels + ", " + dm.heightPixels + ")", Toast.LENGTH_SHORT).show();
}
if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
adapt = Bitmap.createBitmap(bmp, 0, 0, dm.widthPixels, dm.heightPixels);
scrollX = 0;
scrollY = 0;
main.invalidate();
Toast.makeText(this, "(" + dm.widthPixels + ", " + dm.heightPixels + ")", Toast.LENGTH_SHORT).show();
}
// ÏÂÃæÕâ¾ä±ØÐë´æÔÚ£¬·ñÔò»á³öÏÖÒì³£
super.onConfigurationChanged(newConfig);
}
public boolean onTouchEvent(MotionEvent me)
{
return gestureDetector.onTouchEvent(me);
}
public boolean onDown(MotionEvent me)
{
return true;
}
public boolean onFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY)
{
return true;
}
public void onLongPress(MotionEvent me)
{
}
public boolean onScroll(MotionEvent me1, MotionEvent me2, float distanceX, float distanceY)
{
// distanceX ºÍ distanceY £¬·Ö±ðΪ½ÐÉÏ´ÎλÖõĹö¶¯Á¿£¬¿ÉÒÔΪÕý£¬Ò²¿ÉÄÜΪ¸º
main.handleScroll(distanceX, distanceY);
return true;
}
public void onShowPress(MotionEvent me)
{
}
public boolean onSingleTapUp(MotionEvent me)
{
return true;
}
class PictureView extends View
{
public PictureView(Context ctx)
{
super(ctx);
}
// µ÷Óà invalidate ·½·¨Ê±£¬»á´¥·¢ onDraw Õâ¸ö·½·¨
protected void onDraw(Canvas canvas)
{
canvas.drawBitmap(adapt, 0, 0, paint);
}
public void handleScroll(float distanceX, float distanceY)
{
// ÐÞÕýÿ´Î¹ö¶¯ºóµÄ scrollX ºÍ scrollY µÄÖµ
scrollX += distanceX;
scrollY += distanceY;
if(scrollX < 0)
{
scrollX = 0;
}
if(scrollX > (X - dm.widthPixels))
{
scrollX = X - dm.widthPixels;
}
if(scrollY < 0)
{
scrollY = 0;
}
if(scrollY > (Y - dm.heightPixels))
{
scrollY = Y - dm.heightPixels;
}
// ÖØÐ»ñÈ¡ adapt
adapt = Bi