
Android开发中的点滴记录
文章平均质量分 50
日常各种问题记录,
初心不负
业精于勤荒于嬉,行成于思毁于随,坚持学习是一种态度,更是对未来负责,知识来源沉淀,坚持写作
展开
-
Android MVVM架构浅析封装
MVVM 架构相对于MVP来说其实思想上是一致的,只是MVP中的P层在MVVM中换成了ViewModel,所以MVVM的模块结构如下图(截图出自https://developer.android.google.cn/jetpack/guide)这里面的LiveData 和Room 其实都是Google一直在推的JetPack 中的组件,更多的组件大家可以去https://developer.android.google.cn/jetpack 中查看回到MVVM 在MVVM中使用ViewModel原创 2021-06-30 10:35:21 · 896 阅读 · 6 评论 -
Android 评论输入框弹窗+软键盘自动弹起
需求是输入框和软键盘一起弹出,效果图如下:可以使用Dialog 的形式,因为Dialog中如果有输入框的话在弹出软键盘后会将弹窗顶起,这样就实现了这个效果:本次使用DialogFragment 可以方便管理Dialog的生命周期代码如下:public class InputDialogForFeedBack extends DialogFragment { private Dialog dialog; private EditText editText; private原创 2020-12-03 17:23:17 · 2063 阅读 · 0 评论 -
Android 关于锁屏锁释放引起的bug
Caused by: java.lang.RuntimeException: WakeLock under-locked TestInitHeartRateActivity at android.os.PowerManager$WakeLock.release(PowerManager.java:1785) at android.os.PowerManager$WakeLock.release(PowerManager.java:1747) at ...原创 2020-09-17 17:19:24 · 1042 阅读 · 0 评论 -
Android使用MPAndroidChart画折线图
MPAndroidChart GitHub地址https://github.com/PhilJay/MPAndroidChart一个强大的Android图表视图/图形视图库,支持直线-条形-饼-雷达-气泡-烛台图以及缩放、平移和动画。今天使用这个库生成一个折线图,先看效果图先来初始化表格属性, private void initLineChart(){ //设置线状图不显示描述 heartRateLineChart.setDescription(null);原创 2020-09-17 11:26:27 · 2696 阅读 · 2 评论 -
ScrollView 嵌套地图控件 产生滑动冲突的问题
使用高德地图控件嵌套在ScrollView下面会产生滑动冲突的问题,使得地图的滑动,缩放变得不流畅,卡顿借此也温习一下事件分发过程所以在地图滑动事件的时候要屏蔽掉ScrollView的拦截事件在MapView 的外层套一层自定义容器,解决这个滑动冲突,代码如下:相关说明放在注释中/** 地图容器,,解决ScrollView 嵌套MapView 滑动冲突的问题** */public class MapContainer extends RelativeLayout { publi原创 2020-09-24 09:02:27 · 688 阅读 · 0 评论 -
Android studio gradle重复依赖问题记录
导入一个滚轮的开源库以后出现gradle编译失败,报错日志如下:Duplicate class com.blankj.utilcode.constant.CacheConstants found in modules jetified-utilcode-1.26.0-runtime.jar (com.blankj:utilcode:1.26.0) and jetified-utilcodex-1.29.0-runtime.jar (com.blankj:utilcodex:1.29.0)Duplicat原创 2020-09-12 16:06:37 · 1384 阅读 · 0 评论 -
Android 轮播图实现视频和图片混播
实现的思路是采用RecyclerView 的多布局,再配合PageSnapeHelper这个类实现类似ViewPager一样的效果,涉及到视频播放本次使用的是饺子播放器,也可以使用其他播放器,只要实现效果就可以布局只有一个RecyclerView 就不贴代码了在activity中初始化RecyclerView layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutM原创 2020-09-24 09:03:54 · 3941 阅读 · 5 评论 -
Android Recyclerview +RadioButton 单选列表的实现
设计图如下由于Recyclerview的复用机制,RadioButton 选择会出现错误,实现的代码如下:主要是Adapter的实现(Adapter使用的BaseRecyclerViewAdapterHelper开源封装库),public class ChineseMedicineAdapter extends BaseQuickAdapter<String,BaseViewHolder> { //用来记录每个选项单选结果,记录的结果是这样的{0=1,1=3,2=4.....}原创 2020-09-24 09:03:47 · 1922 阅读 · 0 评论 -
Android 自定义圆弧进度条加数字动态变化的实现
效果如下:思路:一个内环圆弧和一个外环圆弧,因为有一个圆圈是在圆弧上做圆周运动,所以在画圆的时候必须要得到圆弧上的各个点的坐标,这里其实就用到了PathMeasure这个类,可以帮我们拿到这些点,在画圆弧的时候也理所应当的要使用path,然后根据外界动态的传值进行重绘就能达到动态的效果代码如下:public class ProgressPathRainbow extends View { private Paint outPaint; private Paint innerPaint原创 2020-09-24 09:03:18 · 500 阅读 · 0 评论 -
adb 安装app报 Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
因为某平台应用审核不通过,原因是使用adb命令无法安装应用程序然后我尝试使用adb命令重新安装一下,在Android SDK 的platform-tools 目录下右键打开Windows命令窗口adb install xxx.apk报错Failure [INSTALL_FAILED_VERSION_DOWNGRADE]原因是app 当前的versionCode 值低于当前已经安装的应用版本,所以更改一下版本就ok了...原创 2020-05-19 14:09:21 · 2160 阅读 · 1 评论 -
Android ViewFlipper 实现消息滚动
ViewFlipper 非常适合实现首页的消息上下滚动或是左右滚动,而且使用也是非常的方便首先在布局中<ViewFlipper android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/vf_msg" android:flipInterval="2500" android:i原创 2020-05-18 09:32:49 · 1081 阅读 · 0 评论 -
记录Android EditText一些输入控制规则
1,价格输入最多保留两位,可以没小数点,也可以使用InputFilter 来设置 price.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override原创 2020-05-17 16:20:12 · 323 阅读 · 0 评论 -
Fragment+ViewPager实现真正的懒加载
我们通常使用Fragment+ViewPager实现页面的切换,在ViewPager的默认机制中,我们能设置预加载个数vpContent.setOffscreenPageLimit(2);这样能提高ViewPager的一些流畅性,但是很多时候我们并不需要加载下一个页面,我们希望切换到那一页才开始加载,也能为用户节省流量,所以就有了懒加载,懒加载说 简单也简单,因为就一个方法,setUserVis原创 2017-07-21 16:27:59 · 1333 阅读 · 0 评论 -
Android ART虚拟机和Dalvik虚拟机区别
Android 从5.0开始默认使用ART虚拟机执行程序,抛弃了Dalvik虚拟机.加快了Android的运行效率,提高系统的流畅性原因是Dalvik虚拟机执行的是dex字节码,ART虚拟机执行的是本地机器码, Dalvik虚拟机有一个解释器,用来执行dex字节码, Android从2.2开始,通过JIT(Just-In-Time)进行Dalvik虚拟机的优化,将使用频率较高的字节码翻译成机器码,就原创 2017-12-27 17:01:12 · 1475 阅读 · 0 评论 -
IntentService+Notifcation实现应用app后台下载完成后并安装(已适配8.0)
app的更新模块放在后台服务可以大大提高app的体验,采用IntentService这种google为我们封装好的用于执行服务中有网络操作的类并搭配Notification来实现一下 效果图如下:(看了一下淘宝的更新,所以就成这样的界面了,) 代码:自定义的IntentService类/** * 更新包下载安装服务 */public class UpdateService e...原创 2018-05-05 15:39:14 · 1365 阅读 · 2 评论 -
引导页ViewPager当滑动到最后一页,再继续滑动切换页面的效果实现
本文还包括是不是第一次启动的判断 引导页ViewPager当滑动到最后一页,再继续滑动切换页面的效果实现,还有在滑动到最后一页显示一个button,点击button也可以实现跳转上代码/** * * 引导页界面(viewpager) * */public class IntroActivity extends Activity implements View.OnClickListene原创 2016-12-02 17:55:04 · 5142 阅读 · 0 评论 -
给TextView的drawableRight属性设置点击事件
由于需求,要给TextView的drawableRight图片设置点击事件 其实更多的可能是EditText,像登录框那样的,其实都一样 上代码/** * Created by great小海海 on 2016/11/30 0030. * 只是加了右侧图标的点击事件 */public class DrawableTextView extends TextView{ publi原创 2016-11-30 18:15:28 · 6414 阅读 · 1 评论 -
Android利用post方式给webview传递json参数
需求:利用webview打开一个URL界面,并且利用post方式传递参数一个json字符串的参数; 主要代码如下:省略了webview的设置@Override public void onClick(View view) { OkHttpClient client=new OkHttpClient(); Request builder=new Request原创 2016-12-29 10:40:25 · 9376 阅读 · 1 评论 -
Android6.0+权限的划分和申请的问题
关于6.0的权限问题Google做了明确的划分:From sdk 23 Android requires runtime permissions for permissions on devices running Android 6.0 and higher, within what is classed as the Dangerous Permission Groups. Dangerous原创 2016-12-29 16:46:58 · 1459 阅读 · 0 评论