2. ÐÞ¸Ä Activity Ëù¶ÔÓ¦µÄ Java ´úÂ룬ʹ֮ÈçÏ£º
package com.pat.gui;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.GestureDetector.OnGestureListener;
import android.widget.Toast;
public class ScrollPicture extends Activity
implements
OnGestureListener
{
private int X = 0;
private int Y = 0;
private static int scrollX = 0;
private static int scrollY = 0;
PictureView main;
Bitmap bmp;
Bitmap adapt;
Resources res;
Paint paint;
GestureDetector gestureDetector;
DisplayMetrics dm;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
gestureDetector = new GestureDetector(this);
paint = new Paint();
// »ñȡͼÏñ
res = getResources();
bmp = BitmapFactory.decodeResource(res, R.drawable.desktop);
// »ñȡͼÏñµÄ¿í¶ÈºÍ¸ß¶È
X = bmp.getWidth();
Y = bmp.getHeight();
// adapt ÊÇ bmp ÏÔʾÔÚÆÁÄ»ÉϵÄÄDz¿·ÖͼÏñ£¬¼û PictureView ÖÐµÄ handleScroll ·½·¨
adapt = Bitmap.createBitmap(bmp);
main = new PictureView(this);
// È¥µô±êÌâÀ¸
requestWindowFeature(Window.FEATURE_NO_TITLE);
// È«ÆÁÏÔʾ
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//setContentView(R.layout.main);
setContentView(main, new ViewGroup.LayoutParams(X, Y));
// ÒÔ landscape ·½Ê½ÏÔʾ
this.setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
// »ñÈ¡ÆÁÄ»³ß´ç
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
}
// ÆÁÄ»·×ªÊ±£¬ÒªÖØÐ»ñÈ¡ dm ¡£ÒªÊ¹ onConfigurationChanged ¿ÉÒÔ±»´¥·¢£¬±ØÐë×öµ½£º
// 1. ÔÚ AndroidManifest.xml µÄ Activity ±êÇ©ÖУ¬Ôö¼ÓÊôÐÔ android:configChanges="orientation"
// 2. ÔÚ AndroidManifest.xml £¬ÐëÔö¼ÓȨÏÞ£º
//
// µ±ÆÁÄ»ÏÔʾÓÐ landscape ±ä³É portrait £¬»òÕßÓÐ portrait ±ä³É landscape ÊÇ£¬¶¼»á´¥·¢ onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig)
{
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
// »ñÈ¡ÆÁÄ»³ß´ç
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
// ÖØÐ¼ÆËã adapt ¡£ÏÔʾ desktop.png µÄ×óÉϽǿªÊ¼£¬Õ¼Õû¸öÆÁÄ»³ß´ç´óСµÄÄDz¿·Ö
adapt = Bitmap.createBitmap(bmp, 0, 0, dm.widthPixels, dm.heightPixels);
// scrollX ºÍ scrollY ·Ö±ðΪÔÚˮƽ»òÕß´¹Ö±·½ÏòÉÏ£¬¹ö¶¯µÄÏñËØÖµ
scrollX = 0;
scrollY = 0;
// ÖØ»
main.invalidate();