读书人

Android开发自个儿的锁屏壁纸

发布时间: 2013-03-17 13:48:31 作者: rapoo

Android开发自己的锁屏壁纸

SurfaceView SurfaceHolder MediaPlayer Service BroadcastReceiver KeyguardManager PowerManager

思路:启动一个服务,监听灭屏广播,当收到广播的时候,点亮屏幕,禁用锁屏,调用使用SurfaceView播放视频。


1.启动一个服务

public class WallPaperSurfaceView extends SurfaceView implements Callback {private SurfaceHolder mSurfaceHolder;public MediaPlayer mediaPlayer;String tag = "BackgroundSurfaceView";private HelloActivity helloActivity;@Override    protected void onWindowVisibilityChanged(int visibility) {        // TODO Auto-generated method stub        super.onWindowVisibilityChanged(visibility);    }    @Override    public boolean onTouchEvent(MotionEvent event) {        helloActivity.finish();        HelloActivity.isScreenOff = false;        return super.onTouchEvent(event);    }    public WallPaperSurfaceView(Context context, AttributeSet attrs) {super(context, attrs);helloActivity = (HelloActivity) context;mSurfaceHolder = getHolder();//设置SurfaceView自己不管理的缓冲区mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);mSurfaceHolder.addCallback(this);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}@Overridepublic void surfaceCreated(SurfaceHolder holder) {    Log.d("yzy","surfaceCreated.....");    mediaPlayer=new MediaPlayer();play();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {holder.removeCallback(this);if(mediaPlayer!=null ) {mediaPlayer.release();mediaPlayer = null;}}private void play() {try {    if(mediaPlayer ==  null) {        mediaPlayer = new MediaPlayer();    }    mediaPlayer.reset();mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.setScreenOnWhilePlaying(true);//设置需要播放的视频    mediaPlayer.setDataSource("/mnt/sdcard/sun.mp4");mediaPlayer.setDisplay(mSurfaceHolder);mediaPlayer.prepare();mediaPlayer.setLooping(true);//播放mediaPlayer.start();} catch (Exception e) {Log.e(tag, "kc" , e);}}}




读书人网 >Android

热点推荐