首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android开发自个儿的锁屏壁纸

2013-03-17 
Android开发自己的锁屏壁纸SurfaceViewSurfaceHolderMediaPlayerServiceBroadcastReceiverKeyguardManager

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);}}}




热点排行