当前位置: 首页 > news >正文

中企动力做网站多少钱凡科快图怎么制作图片

中企动力做网站多少钱,凡科快图怎么制作图片,广告推广怎么赚钱,福建做网站公司排名code小生,一个专注 Android 领域的技术平台公众号回复 Android 加入我的安卓技术群作者#xff1a;7_px链接#xff1a;https://www.jianshu.com/p/fc5cf284abbb声明#xff1a;本文已获7_px授权发表#xff0c;转发等请联系原作者授权一、概述#xff1a; 壁纸运行在一个… code小生,一个专注 Android 领域的技术平台公众号回复 Android 加入我的安卓技术群作者7_px链接https://www.jianshu.com/p/fc5cf284abbb声明本文已获7_px授权发表转发等请联系原作者授权一、概述 壁纸运行在一个Android服务之中这个服务的名字叫做WallpaperService。当用户选择了一个壁纸之后此壁纸所对应的WallpaperService便会启动并开始进行壁纸的绘制工作。Engine是WallpaperService中的一个内部类实现了壁纸窗口的创建以及Surface的维护工作。Engine内部实现了SurfaceView我们只需要在其内部利用MediaPlayer SurfaceView就可以播放动态壁纸了。二、实现 WallpaperService需要一个xml去配置然后在AndroidManifest.xml中声明wallpaper xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:thumbnailmipmap/icon_lacation_black___cmwallpaper继承WallpaperService实现我们自己的壁纸服务VideoLiveWallpaperpublic class VideoLiveWallpaper extends WallpaperService {    Override    public Engine onCreateEngine() {        return new VideoEngine();    }    class VideoEngine extends Engine {        private MediaPlayer mMediaPlayer;        Override        public void onCreate(SurfaceHolder surfaceHolder) {            super.onCreate(surfaceHolder);        }        Override        public void onDestroy() {            super.onDestroy();        }        Override        public void onSurfaceCreated(SurfaceHolder holder) {            super.onSurfaceCreated(holder);            mMediaPlayer  new MediaPlayer();            mMediaPlayer.setSurface(holder.getSurface());            try {                mMediaPlayer.setDataSource(new File(FileUtil.getDCIMCameraDir(), hlj_wallpaper).getAbsolutePath());                mMediaPlayer.setLooping(true);                mMediaPlayer.setVolume(0, 0);                mMediaPlayer.prepare();                mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {                    Override                    public void onPrepared(MediaPlayer mp) {                        mMediaPlayer.start();                    }                });            } catch (IOException e) {                e.printStackTrace();            }        }        Override        public void onSurfaceDestroyed(SurfaceHolder holder) {            super.onSurfaceDestroyed(holder);            mMediaPlayer.release();            mMediaPlayer  null;        }        Override        public void onVisibilityChanged(boolean visible) {            if (visible) {                mMediaPlayer.start();            } else {                mMediaPlayer.pause();            }        }    }}接着声明这个服务同时声明我们上面写的xml配置 serviceandroid:name.VideoLiveWallpaperandroid:labelstring/app_nameandroid:permissionandroid.permission.BIND_WALLPAPERandroid:process:wallpaper                        intent-filter                action android:nameandroid.service.wallpaper.WallpaperService /            intent-filter                        meta-dataandroid:nameandroid.service.wallpaperandroid:resourcexml/wallpaper /        service重点在onSurfaceCreated方法中这里为了可以动态切换不同的壁纸我是指定去加载一个固定目录下的视频文件然后不断的复制新文件到这个目录因为一旦开启切换壁纸这个方法就会调用所以当调用后再动态通知去更改路径不起作用。所以我在更换壁纸前先清空 try {                                WallpaperManager.getInstance(getContext())                                        .clear();                            } catch (IOException e) {                                e.printStackTrace();                            }再去复制需要替换的壁纸到指定目录 copyFile(file.getAbsolutePath(),                                    new File(FileUtil.getDCIMCameraDir(),                                            hlj_wallpaper).getAbsolutePath());  /**     * 复制单个文件     *     * param oldPath String 原文件路径 如c:/fqf.txt     * param newPath String 复制后路径 如f:/fqf.txt     * return boolean     */    public void copyFile(final String oldPath, final String newPath) {        progressBar.setVisibility(View.VISIBLE);        Observable.create(new Observable.OnSubscribe() {Overridepublic void call(Subscriber super Boolean subscriber) {try {int byteSum  0;int byteRead ;                    File oldFile  new File(oldPath);if (oldFile.exists()) { //文件存在时                        InputStream inStream  new FileInputStream(oldPath); //读入原文件                        FileOutputStream fs  new FileOutputStream(newPath);byte[] buffer  new byte[1444];while ((byteRead  inStream.read(buffer)) ! -1) {                            byteSum  byteRead; //字节数 文件大小                            System.out.println(byteSum);                            fs.write(buffer, 0, byteRead);                        }                        inStream.close();                        subscriber.onNext(true);                        subscriber.onCompleted();                    }                } catch (Exception e) {                    System.out.println(复制单个文件操作出错);                    e.printStackTrace();                    subscriber.onCompleted();                }            }        })                .subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(new Observer() {Overridepublic void onCompleted() {                        progressBar.setVisibility(View.GONE);                    }Overridepublic void onError(Throwable e) {                        progressBar.setVisibility(View.GONE);                    }Overridepublic void onNext(Boolean aBoolean) {                        progressBar.setVisibility(View.GONE);                        setToWallPaper(getContext());                    }                });    }setToWallPaper 方法就是真正的开启设置壁纸操作了public static void setToWallPaper(Context context) {        final Intent intent  new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,                new ComponentName(context, VideoLiveWallpaper.class));        context.startActivity(intent);    }至此一个简单的动态壁纸就搞定了。推荐阅读该用路由来管理你的界面跳转了Android:手把手教你如何优雅的实现APP启动速度优化登不上高峰看到的风景始终有限
http://www.pierceye.com/news/391420/

相关文章:

  • 龙华网站建设设计公司国家中小学智慧教育平台
  • 摄影网站采用照片做宣传_版权费是多少?pythom+网站开发规范
  • 免费制作一个自己的网站吗达内教育口碑怎么样
  • 2015做那个网站能致富网站建设模板ppt模板
  • 网站后台管理系统教程自助网站建设程序
  • 做黑帽需不需要搭建网站没有做等保的网站不能上线对吗
  • 怎么在微信建立公众号郑州专业seo首选
  • 万网网站后台国家域名
  • 怎么做 niche网站临港注册公司优惠政策
  • 做网站开发怎么做网站推广的步骤
  • 网站空间文件删不掉软文免费发布平台
  • 电子商务网站开发教程论文推广app平台有哪些
  • 郑州专业的网站建设优化自己的网站
  • 申请渠道门户网站是什么意思微信公众平台推广网站
  • 公司网站未备案公众号如何推广产品
  • 网站建设服务器环境配置郑州网站建设企业名录
  • e福州官方网站wordpress注册目录
  • 国际外贸网络交易平台网页seo搜索引擎优化
  • 做网做网站建设网站建设图片怎么切
  • 国外数码印花图案设计网站36kr wordpress
  • 上海网站建设设计公司zencart 网站入侵
  • 阜蒙县自治区建设学校网站汉中市住建局建设厅网站官网
  • windows 2008 iis怎么搭建网站手机网站模板建站
  • 优设网官网首页seo教程搜索引擎优化
  • 做问卷给钱的网站页面设计结课总结
  • 洛阳集团网站建设wordpress 深度优化
  • python做网站缺点湛江市建网站
  • 济南网站建设(选聚搜网络)在线购物网站建设
  • 珠海专业做网站公司昆明搜索引擎推广
  • 阿里云 建设网站怎么样百度推广一级代理商名单