打开网站代码怎么写,江苏省建设教育协会网站首页,千素网站建设,婚纱网站怎么做背景
关于安卓开发中#xff0c;有很多奇奇怪怪的问题#xff0c;有时候这个控件闪一下#xff0c;有时候这个页面移动一下#xff0c;这些对于快速开发中#xff0c;去查询#xff0c;都是很耗费时间的#xff0c;因此#xff0c;本系列文章#xff0c;旨在记录安卓…
背景
关于安卓开发中有很多奇奇怪怪的问题有时候这个控件闪一下有时候这个页面移动一下这些对于快速开发中去查询都是很耗费时间的因此本系列文章旨在记录安卓开发过程中遇到的小问题能快速解决问题。
开发环境
androidstudio win10 gradle4
本文涉及知识
WebView
微信开放平台
MPAndroidChart
Dialog
PhotoView
gsyVideoPlayer 主体内容
WebView
1安卓在使用webview的页面中进入页面后webview在初始化中无故滑动。
原因是webview焦点引起的问题。解决方法在webview的父布局加上一下属性
android:descendantFocusabilityblocksDescendants微信开放平台
1微信打开的网页中点击跳转到安卓APP失效问题解决方法
先配置好安卓的微信sdk链接 PS注意安卓11和安卓13的适配这里的链接中有。 值得一提的是如果项目是直接继承三方的wx页面如友盟的WXCallbackActivity。这个时候我们开发代码的过程就区别于官方文档了。如果单单是处理微信中的网页跳转到APP指定页面核心代码如下图 Overridepublic void onReq(BaseReq req) {LogUtil.d(onReq: req.getType());switch (req.getType()) {case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:break;case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:goToShowMsg((ShowMessageFromWX.Req) req);break;default:break;}super.onReq(req);}从上面的代码中可以看到是直接重写onReq方法即可。这里我们在里面处理ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX这个指令就好了。至于sdk中 的extInfo怎样定义得配合开发过程进行不能一概而论。 MPAndroidChart安卓图表库
1折线图初始化时移动到指定的x退出页面内存泄漏
需要下载源码后进行修改修改方法如下 1-1找到MoveViewJob类中的recycleInstance方法增加下面的代码 public static void recycleInstance(MoveViewJob instance){instance.mViewPortHandler null;instance.mTrans null;instance.view null;pool.recycle(instance);}1-2在调用跳转的过程中使用方法moveViewToX进行调用即可
2取消当前选中的标签
直接调用API chart.highlightValue(null)Dialog
1通过定义基类的Dialog进行封装生命周期便于内存回收释放
很多业务中都会用到dialog有些甚至时在dialog里面做很多复杂的操作。 因此业务中得到dialog的生命周期时非常重要核心代码如下
public abstract class BaseCustomDialog extends Dialog {public BaseCustomDialog(NonNull Context context, int themeResId) {super(context, themeResId);}Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setOnShowListener(new OnShowListener() {Overridepublic void onShow(DialogInterface dialog) {lifecycleStart();}});setOnDismissListener(new OnDismissListener() {Overridepublic void onDismiss(DialogInterface dialog) {lifecycleStop();}});}protected void initStyle() {try {Window window getWindow();if (window ! null) {window.getAttributes().windowAnimations R.style.bottomShowAnimStyle;WindowManager.LayoutParams lp window.getAttributes();lp.dimAmount 0.1f; // 设置背景透明度0.0完全透明1.0完全不透明window.setAttributes(lp);window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);window.setStatusBarColor(Color.TRANSPARENT); // 设置状态栏颜色window.setNavigationBarColor(Color.TRANSPARENT); // 设置状态栏颜色}} catch (Exception e) {e.printStackTrace();}}protected void initFullLayout(){getWindow().getAttributes().width ViewGroup.LayoutParams.MATCH_PARENT;getWindow().getAttributes().height ViewGroup.LayoutParams.MATCH_PARENT;}protected void lifecycleStart() {}protected void lifecycleStop() {}}上述代码就是基类dialog的封装对于子类调用在方法lifecycleStart()lifecycleStop()中进行内存的释放管理就可以了。 PhotoView安卓图片预览控件
1关于PhotoView初始化放大图片逻辑
这里要区分情况看看你是放大width还是height。这里核心的要点就是计算出放大的倍数然后通过setScale方法进行设计即可。核心代码如下 ivFhrContent.setScaleLevels(scaleRate / 0.5 1 ? 1f : scaleRate / 0.5f, scaleRate, scaleRate * 2);ivFhrContent.setImageDrawable(resourceImage);LogUtil.d(scale scaleRate);new Handler().postDelayed(() - {ivFhrContent.setScale(scaleRate,0f,ivFhrContent.getHeight() / 2f,false);}, 0);上述代码中scaleRate就是放大的系数。 gsyVideoPlayer安卓播放库
1Https证书问题
核心代码如下 ExoSourceManager.setExoMediaSourceInterceptListener(new ExoMediaSourceInterceptListener() {Overridepublic MediaSource getMediaSource(String dataSource, boolean preview, boolean cacheEnable, boolean isLooping, File cacheDir) {//如果返回 null就使用默认的return null;}/*** 通过自定义的 HttpDataSource 可以设置自签证书或者忽略证书* demo 里的 GSYExoHttpDataSourceFactory 使用的是忽略证书* */Overridepublic HttpDataSource.BaseFactory getHttpDataSourceFactory(String userAgent,Nullable TransferListener listener,int connectTimeoutMillis, int readTimeoutMillis,boolean allowCrossProtocolRedirects) {//如果返回 null就使用默认的return new GSYExoHttpDataSourceFactory(userAgent, listener,connectTimeoutMillis,readTimeoutMillis, true);}});上述设置可以接受重定向以及播放HTTPS数据