android
VincentStory
Android Developer
展开
-
使用java批量处理文件
使用java单元测试,执行这个文件的main方法,就可以对文件进行内容修改逻辑。不同的逻辑可以根据具体情况自己来编辑。原创 2023-01-29 17:50:57 · 987 阅读 · 0 评论 -
Android实现富文本展示
我们在开发的过程中可能会遇到这种一行文字有不通颜色的情况,如果用多个TextView去实现会让布局显得繁琐而且不利于扩展,那么我们可以使用android提供的SpannableString功能来实现我们的需求。下面我们就用一个TextView实现上述效果,并可以监《听注册协议》和《隐私政策》的点击事件。原创 2022-11-04 17:04:53 · 1950 阅读 · 0 评论 -
StompProtocolAndroid 使用方法
STOMP是一个简单的可互操作的协议, 被用于通过中间服务器在客户端之间进行异步消息传递。它定义了一种在客户端与服务端进行消息传递的文本格式.原创 2022-08-03 14:45:20 · 1124 阅读 · 0 评论 -
Android性能优化之启动优化
我们一般项目常规的初始化都是通过同步线程逐个执行,或者个别耗时的开启一个子线程去执行,先不说效率会比较拖沓,在application的代码整洁度上面也不够美观,特别是任务比较多的时候,一个类会显得比较臃肿,引入这个库就可以解决这些问题,让任务变得清晰并且执行效率高。............原创 2022-08-01 13:54:53 · 237 阅读 · 0 评论 -
FaceBook第三方登录获取姓名,头像,邮箱等个人信息
最近项目新增一个需求:需要收集用户的邮箱信息。但是直接通过GraphRequest.newMeRequest去获取发现返回值为空,通过查阅资料得知facebook获取用户邮箱还需要授权。授权方式如下 LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile,email"));获取姓名邮箱信息监听事件如下 GraphRequest request = GraphRequest.ne原创 2020-12-30 19:42:19 · 9335 阅读 · 12 评论 -
Could not determine the dependencies of task ‘:app:countDebugDexMethods‘
新版android studio运行老项目,报错Could not determine the dependencies of task ':XXX',解决思路。原创 2022-06-29 17:34:06 · 1548 阅读 · 0 评论 -
Android api升级到31 导致的兼容性问题
1.问题描述:android api升级到31的时候会引发很多兼容性问题,今天主要记录其中一个问题,Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some原创 2022-04-19 15:14:27 · 10861 阅读 · 0 评论 -
Kotlin高阶函数实现事件监听
一般自定义view里面的点击事件都是放在外部去处理,我们常规java里面的实现方式都是创建一个接口Listener,然后通过这个接口将监听事件传递出去。示例代码:```public void init() { textView.setOnClickListener(view -> { listener.onClick(view); });}public interface Listener { void onClick(View view);原创 2021-09-28 12:08:39 · 876 阅读 · 0 评论 -
Mac. Android studio. 常用快捷键
fn+option+F7. —— 查看文件调用位置Ctro+option+O. —— 移除无效引入文件fn+command+f12 —— 查看当前类的方法Control + H ———查看类的继承关系Android Studio常用快捷键汇总(mac)(一)查找/查看相关搜索任意内容 双击 sft1当前文件查找/替换 cmd + F / cmd + R 使用cmd + G,sft + cmd + G,跳到下一...原创 2021-07-02 15:02:38 · 424 阅读 · 0 评论 -
TextView 实现文字不同大小,不同颜色,不同字体
SpannableStringBuilder span=new SpannableStringBuilder("这是一个美好的世界");//设置字体不同大小span.setSpan(new AbsoluteSizeSpan(dipToPx(this,30)), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);span.setSpan(new AbsoluteSizeSpan(dipToPx(this,20)), 2, 4, Spannable.SPAN_EXCLU.原创 2021-06-24 16:39:57 · 1265 阅读 · 0 评论 -
ConstraintLayout 约束布局 实现负数布局
以前相对布局RelativeLayout可以利用layout_marginTop="-320dp"达到自己想要的效果,但是ConstraintLayout是不行的,但是我们可以利用Space达到相同的效果 <android.support.v7.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" andr原创 2021-05-10 16:23:33 · 822 阅读 · 1 评论 -
使用ValueAnimator实现view放大缩小动画效果
ValueAnimator valueAnimator = ObjectAnimator.ofFloat(1f, 0.8f);valueAnimator.addUpdateListener(valueAnimator1 -> { valueAnimator1.setDuration(300); valueAnimator1.setRepeatCount(INFINITE); valueAnimator.setRepeatMode(ValueAnimator.REVERSE).原创 2020-08-05 11:48:36 · 1536 阅读 · 0 评论 -
TextView动态设置图片,实现图文混排
通过这种方式不同每次设置drawable的大小 Drawable drawableLeft = mContext.getResources().getDrawable( R.mipmap.room_user_vip); contentTv.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null);...原创 2020-07-13 15:53:31 · 465 阅读 · 0 评论 -
Android TextView 一个字符串实现不同颜色支持设置不透明度
1.资源文件<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><string name="room_ntf_type_diamond"><![CDATA[<font color="#94FFFD"><xliff:g id="USER_NAME">%1$s : </xliff:g></font> <font color="#80fff.原创 2020-07-06 19:51:31 · 951 阅读 · 3 评论 -
Android 实现google第三方登录 返回错误code 10
最近新接手了一个项目,其中有google第三方登录功能,测试反馈正式包可以正常使用google登录,测试包登录失败。如果第一次配置google登录,需要在官方网站配置相关信息,具体配置这里不做赘述,只提供一下官方地址:https://developers.google.com/identity/sign-in/android/start现有的项目是已经配置好了,只是出现了一些问题,进入firebase网站查看之前的配置信息:https://console.firebase.google.com/pr原创 2020-05-12 17:21:37 · 12422 阅读 · 0 评论 -
EventBus 3.1.1 源码解析
本文要解决的问题 1.什么是粘性事件?如何实现的? 2.Eventbus内部线程调度是如何实现的? 什么是粘性事件?如何实现的? 粘性事件,是指在发送事件之后再订阅该事件也能收到该事件,这就使得我们可以预先处理一些事件,让有消费者时再把这些事件投递给消费者.``` 发送粘性事件 public void ...原创 2020-01-16 19:22:59 · 194 阅读 · 0 评论 -
Error:Cannot read packageName from AndroidManifest.xml
今天导入之前做的一个项目的时候报出了这个错误,错误显示,Gradle project refresh failedError:Error:Cannot read packageName from /(项目路径)/ AndroidManifest.xml,按照路径查了一下发现当前路径下没有主配置文件(不知是什么原因这个文件被删除了),幸好我之前对项目都做了备份,于是把这个文件重新放回原路径,编译就通...原创 2018-03-04 17:46:34 · 18203 阅读 · 5 评论 -
设置小数点保留两位
tvPrice.setText(String.format("%.2f",ss);原创 2019-01-17 15:10:42 · 1478 阅读 · 0 评论 -
Android 开发中使用getAssets获取不到文件的问题
1.通过获取笨的json文件进行解析,提示无法找到文件List<QuestionBean> data = new Gson().fromJson(getStringFromAssert(NormalQuestionActivity.this, "data.json"), new TypeToken<List<QuestionBean>>() {}.get...原创 2019-03-29 16:03:35 · 6296 阅读 · 0 评论 -
json返回集合,key值动态改变时如何解析
1,一般接口返回的key值是固定的,我们可以写固定的实体类来解析,但是如果接口返回是动态的key,我们如何获取到所有的key和value呢,如图所示2.如图通过如下方式获取存好数据的map的集合JSONObject jsonObject = null;try { jsonObject = new JSONObject(t); JSONArray data = jso......原创 2019-04-01 14:27:01 · 2397 阅读 · 0 评论 -
Android根据属性值自定义改变图片颜色
改变ImageView图片颜色<ImageView android:id="@+id/head_img_right" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_40" android:layout_alignParentRight="true" and...原创 2019-05-16 14:33:32 · 737 阅读 · 0 评论 -
使用viewpage+fragment无法彻底移除fragment的问题
因为使用FragmentPagerAdapter的时候,加载到viewpage的fragment是无法彻底移除的,只有清空内存时才会移除,所以在根据index获取fragment对象时会出现问题,如果想彻底移除fragment可以使用FragmentStatePageAdapter,就可以解决这个问题,但是使用FragmentStatePageAdapter的时候,如果销毁其中一个fra...原创 2019-07-17 20:47:07 · 618 阅读 · 0 评论 -
新项目DC Optoin中遇到的问题
1.k线范围图实现颜色渐变2.tablayout添加删减fragment时出现数据丢失3.fragment使用putString传输数据太大的问题4.使用recycleview实现二级菜单并实时刷新时卡顿的问题以及显示隐藏的问题,优化方案使用ExpandableListView...原创 2019-07-25 11:38:07 · 186 阅读 · 0 评论 -
在Android 7.0上PopupWindow.showAsDropDown不起作用的解决方法
使用popupwindow时在android7.0以上使用showAsDropDown方法不起作用,经查询需要做兼容性适配,方法如下:public class Solve7PopupWindow extends PopupWindow { public Solve7PopupWindow(View mMenuView, int matchParent, int matchParen...原创 2018-12-25 15:27:34 · 729 阅读 · 0 评论 -
解决Scrollview嵌套横向recycleview滑动冲突问题
1.重写Scrollview,拦截竖向滑动,不拦截横向滑动public class CustomScrollview extends ScrollView { private float mLastXIntercept = 0f; private float mLastYIntercept = 0f; public CustomScrollview(Contex...原创 2019-01-04 14:20:21 · 2669 阅读 · 0 评论 -
使用友盟第三方登录时,微信客户端不能被拉起,且没有log错误
1.so文件没有在build里面配置2.微信客户端已登录账号也有可能不能被拉起3.签名信息不正确,可以下载微信官方获取签名apk获取原创 2018-05-01 10:54:16 · 1324 阅读 · 0 评论 -
install apk failed Run项目的时候提示安装失败
因为做测试,我将原来的项目复制了一份重新运行,发现安装不了了,推测是复制项目导致build生成的apk文件出了问题,尝试将project和module目录下的build目录删除,重新运行果然安装成功。...原创 2018-04-13 15:02:07 · 783 阅读 · 0 评论 -
集成讯飞语音合成开发sdk时SpeechSynthesizer对象初始化为空
讯飞开发平台好像并没有集成sdk的教程,只有一个demo将sdk集成到自己项目的时候发现SpeechSynthesizer对象用SpeechSynthesizer.createSynthesizer(Context, mTtsInitListener)初始化的时候返回对象为空。经排查发现原因有可能是以下两个问题。1.自定义Application没有引用,<application an...原创 2018-04-04 11:18:41 · 3127 阅读 · 0 评论 -
Error:(48, 62) 错误: 找不到符号 符号: 类 DaggerRepositoryComponent
原因:1.@Inject 注解时加了private 等权限2.布局文件初始化时出现问题,比如控件id没有找到,也会报这个问题原创 2018-03-30 15:59:30 · 2819 阅读 · 4 评论 -
安卓自定义Dialog不能水平填满屏幕
在安卓7.0手机上运行项目,写了一个自定义dialog发现dialog和两边屏幕都有间隔,在网上看了一些文章都说是父类Dialog的background设置的是一个.9文件,两边有透明的部分,所以感觉是没有填满屏幕,重新设置background就可以了,自己试了之后发现没有任何变化,最终在另外一篇文章中发现真正的问题,文章地址:https://blog.csdn.net/rnzuozuo/arti...原创 2018-03-30 10:39:21 · 362 阅读 · 0 评论 -
could not resolve com.google.dagger:dagger-compiler:2.11
从git仓库上拉取了一个公司正在做的项目,编译的时候报了这个错误,检查gradle配置文件 repositories {// maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} google() jcenter() maven { ...原创 2018-03-08 11:09:24 · 4116 阅读 · 0 评论 -
Error:Configuration with name ‘default’ not found
在导入studio工程的时候,进行sync的时候,提示Error:Configuration with name ‘default’ not found.在网上查了一下资料,说是settings.gradle设置有问题,可能是include了不存在的Module导致的,我检查了一下发现设置和Module都是存在的,仔细检查之后发现,Module虽然存在但是里面的文件却不见了,所以原来那个Modul...原创 2018-03-07 15:06:36 · 253 阅读 · 0 评论 -
添加测试效果工具tools
在写布局是我们要写一下测试数据上去看一下效果,但是运行时又不想让用户看到这些测试数据,就可以使用这个工具tools:text="aaa"例如:<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerI原创 2017-04-01 01:01:30 · 319 阅读 · 0 评论 -
设置textview显示不同的字体和颜色
通过html代码设置一个textview上显示不同的字体和颜色textview.setText(Html .fromHtml("用户" + inviteInfoBean.getData().getPhone() + "测试文字" + inviteInfoBean.getData(原创 2017-04-01 00:55:00 · 815 阅读 · 0 评论 -
分享一些安卓优秀的开源项目地址
1.一个整理的很全的页面特效博客地址http://www.cnblogs.com/hawkon/p/3593709.html2.一个把okhttp封装的很好的项目https://github.com/jeasonlzy0216/OkHttpUtils3.一个仿IOS的时间选择器开源项目地址https://github.com/saiwu-bi原创 2017-04-01 00:46:38 · 217 阅读 · 0 评论 -
Android Studio右键选项中没有Git?
最近发现有些项目右键没有git菜单,最后发现是在Version Control设置里面,对应的项目选择的是svn而不是Git,所以把svn改成Git就可以了原创 2018-05-25 10:20:47 · 4116 阅读 · 2 评论 -
android studio意外重启后 原本的import全部报错
文件类找不到,但是项目可以运行。试了好几个方法都没什么效果,最后在网上看到解决方法,果然好了。解决方法如下:File -> Invalidate Cashes / Restart这样重启一下studio就可以了...原创 2018-06-19 11:12:44 · 685 阅读 · 0 评论 -
Android studio 出现No usages found in All Places
最近使用AS时,突然发现很多代码显示为灰色的未引用代码,但是确实该代码都有被引用。这对编码很不方便,容易误以为无用代码将其删除。最终解决方案如下:File -> Invalidate Caches/Restart...原创 2018-12-28 14:46:05 · 7086 阅读 · 4 评论 -
当scrollview嵌套多个recyclerview时如何实现整个页面的下拉刷新和上拉加载
最近做的一个项目中有个布局比较复杂一点,整个页面是个srollview里面又嵌套了几个recycview,刚开始是有的滑动冲突卡顿的问题,通过如下方法解决了mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2) { @Override public boolean canScrollVerti...原创 2018-12-11 16:04:24 · 1771 阅读 · 0 评论 -
使用greenDao时,出现 no such table的异常
出现这个异常是因为没有找到表,没有找到表的原因是之前的表已经建好了,而新增的表需要重新初始化数据库才可以建好,所以只需要把schemaVersion 改变一下版本号,重新sync运行一下就可以重新生成表了,另外修改表中字段都需要重新初始化数据库才会生效。greendao{ //数据库版本 schemaVersion 2 daoPackage 'com.android.p...原创 2018-12-13 16:10:59 · 4388 阅读 · 4 评论