实际项目开发
龙先森
Android开发。
展开
-
Android保存图片和视频到本地并更新相册
照片:MediaStore.Images.Media.insertImage(getContentResolver(),bmp,fileName, null);bmp.recycle();bmp = null;视频: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { //这里用handler发送延时消息的方式来扫描而不是直接在这里用扫描,是因为这时候录制的视频文件还未创建完成原创 2021-10-13 18:11:14 · 1735 阅读 · 0 评论 -
解决SwipeRefreshLayout与Banner滑动冲突
import android.content.Context;import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.ViewConfiguration;//解决SwipeRefreshLayout与Banner滑动冲突public class VpSwip..原创 2021-03-26 15:44:58 · 344 阅读 · 0 评论 -
android滚轮实现时间年月日选择
使用原生的DatePickerDialog即可实现年月日的选择。1、设置主题 <style name="AppTheme_AppDate" parent="android:Theme.Holo.Light.NoActionBar"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true<原创 2021-03-26 15:24:51 · 1033 阅读 · 1 评论 -
WebView无法自动播放h5的video视频标签解决办法
由于项目需求,在进入webview时需要自动播放h5里的video视频,国内网上找了比较多方案都不行,最后还是在Google上找到了解决办法: stackoverflow加入一行代码:webView.getSettings().setMediaPlaybackRequiresUserGesture(false);WebView 一大堆的 setting 让人摸不着头脑 ,带着好奇心点开了改方法的源码:/*** See {@link android.webkit.WebSet..转载 2020-11-05 15:51:18 · 2373 阅读 · 0 评论 -
【BUG记录】Matisse显示的图片乱序或者在全部项不显示
此问题并不是所有手机都是这样的,在个别手机上有出现。解决方法:将Matisse的代码下载到本地,然后修改AlbumMediaLoader类中的ORDER_BY属性,改为: private static final String ORDER_BY = MediaStore.Images.Media.DATE_ADDED + " DESC";然后再将这个module直接引用到自己的项目中去1、在settings.gradle文件中添加,'matisse'2、在buid.grad原创 2020-08-19 14:45:47 · 1549 阅读 · 0 评论 -
记一次热更新上传补丁包失败问题
项目用的阿里云的热更新,集成如下: implementation 'com.aliyun.ams:alicloud-android-hotfix:3.2.9'上传补丁包一直提示失败,提交工单后工程师反馈是因为我这边修改了补丁包的名称,应该使用补丁包工具生成之后的默认文件名...原创 2020-07-20 09:32:40 · 530 阅读 · 0 评论 -
录制视频显示的视频角度和拍摄角度保持一致
需求:横屏拍摄的时候横屏显示,竖屏拍摄的时候竖屏显示思路:1、录制视频界面布局不随横竖屏切换而变化。2、横竖屏切换布局不变化的话,录制的视频的方向也就固定了。解决:1、录制视频界面布局不随横竖屏变化而变化的话,可以直接设定界面的方向固定为竖直方向。2、监听手机旋转状态,根据旋转角度来修改录制视频的方向。具体代码: class MyOrientationEventListener extends OrientationEventListener { priva原创 2020-06-30 17:50:20 · 975 阅读 · 0 评论 -
@Url cannot be used with @GET URL (parameter #1)
如果需要使用@Url,请从@GET注释中删除网址,将网址中的部分网址添加到url参数中。@GETObservable<String> gToken(@Url String url, @Query("usertype") int userType);如果运行不生效,建议把app卸载重新运行一下。...原创 2020-06-16 18:01:59 · 3130 阅读 · 0 评论 -
友盟分享成功之后没有提示信息的解决
在需要执行分享的操作的页面加下面的代码:@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActi...原创 2018-06-06 15:38:29 · 633 阅读 · 0 评论 -
使用鸿洋大神的CommonAdaper使用点击子项的checkbox切换
鸿洋大神的CommonAdater使用的时候挺方便的,但是也有些小问题。我在使用的时候,不知道为什么,在actvity里没法使用adapter的setOnItemClick事件。在里面写的代码都不会运行。(有知道的童鞋求告知。)然后写checkbox的点击切换的时候就比较头疼了,因为都是在adapter类里面实现。现有两个解决办法:1、先设置所有的checkbox选中状态为未选中,然后设置当pos...原创 2018-06-05 15:25:30 · 440 阅读 · 3 评论 -
程序一直吐司提示"获取缓存记录失败"以及吐司显示"set Alias success"
这个是因为程序集成了极光的原因。Android Studio双击Shift,输入TagAliasOperatorHelper,在这个类中可以找到对应的代码,注释了就好了。原创 2018-10-18 17:49:48 · 1507 阅读 · 0 评论 -
设置activity不可返回
直接上代码——重写返回事件,删去默认的super()方法不做处理就OK了。原创 2018-06-01 16:15:05 · 2544 阅读 · 0 评论 -
控制屏幕常亮不锁屏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);原创 2018-08-29 16:55:02 · 1065 阅读 · 0 评论 -
android studio 虚拟机adb.exe已停止工作的处理
在搭建完android studio 后使用虚拟机或真机调试程序,出现如下错误。 在运行里输入cmd,打开命令行工具,使用netstat -aon|findstr 5037查看adb.exe的5037端口是否被占用。 我们可以看到5037被进程为6720的进程所占用,然后用命令tasklist /fi "PID eq 6720"的进程是什么程序,...原创 2018-08-30 09:27:18 · 2396 阅读 · 0 评论 -
Gson转换导致int转换成double的问题解决
使用情景:后端返回的json字符串,通过gson处理后,原本是int类型,现在获取到的是double类型的。解决办法:Map<String,Object> map = new Map<String,Object>;Gson gson = new Gson();Map<String,Object> dataMap = gson.fromJson(js...原创 2018-10-08 14:06:03 · 8441 阅读 · 4 评论 -
设置弹窗大小
原创 2018-12-06 11:31:50 · 2704 阅读 · 0 评论 -
APP长期处于后台手机打开多个APP后进程被杀
如题,这种情况在安卓手机上经常会出现。解决办法:在Application中设定属性值flag,默认为-1。 在基类BaseActivity中加上函数方法: 如果MainActivity继承了BaseActivity那就不做处理,如果没有继承,那么还得将上面的判断方法添加到onCreate()中以及将上面的函数方法复制到MainActivity中。本文...转载 2018-12-17 16:21:00 · 2403 阅读 · 0 评论 -
实现商城类APP的筛选项效果
效果:点击筛选项弹出一个界面,界面里包含需要显示的内容,比如“男”、“女”实现:用popupwindow来实现效果。加工:加一个up、down的指示箭头。默认为down,点击弹出了就变为up。实现:在筛选项的item点击事件里写弹出,在popwindow的dissmiss监听事件里写变为up。OK,思路先写下来,代码过段时间再传上来。...原创 2018-04-04 22:54:42 · 957 阅读 · 0 评论 -
android程序崩溃了却没法通过log查看错误日志
接一个bugly就可以了,在bugly上直接查看错误信息。原创 2018-06-04 16:07:06 · 4072 阅读 · 0 评论 -
BaseRecyclerViewAdapterHelper结合autolayout使用
创建一个适配器继承自BaseQuickAdapter然后重写方法就OK了~原创 2018-05-16 12:54:43 · 491 阅读 · 2 评论 -
点击图片显示大图(有多张图片可以左右滑动)
需求:项目中用到了就是在列表展示的时候会出现图片,点击图片展示大图。思路:用dialog来实现。因为这里在列表里会用到,点击进入动态详情也会用到,所以直接写进工具类。上代码: 全屏显示在于参数后面的style.上代码—— 这里因为项目中图片可能是多张的,所以我在填充的布局里用了第三方的BANNER控件,省的自己再去写viewpager加indictor联...原创 2018-04-24 13:17:08 · 16678 阅读 · 6 评论 -
SwipeRefreshLayout里面需要注意的Api
1、setOnRefreshListener(OnRefreshListener listener) 设置下拉监听,当用户下拉的时候会去执行回调2、setColorSchemeColors(int... colors) 设置 进度条的颜色变化,最多可以设置4种颜色3、setProgressViewOffset(boolean scale, int start, int end) 调整进度条距离屏...原创 2018-04-13 11:50:53 · 642 阅读 · 0 评论 -
EditText获取焦点并自动弹出软键盘
项目中用到了评论功能,我想实现的效果就是点击了评论图片之后自动获取焦点并弹出软键盘让用户输入。 实现代码如下——原创 2018-04-13 11:50:04 · 465 阅读 · 0 评论 -
FloatingActionButton完美显示
UI切的图本身就是圆形的,但是放上去显示之后一直小了,百度了一下—— https://blog.csdn.net/tuke_tuke/article/details/78333667 加了两个属性就可以了——1、scaleType = "center" 2、...原创 2018-04-08 16:22:17 · 1367 阅读 · 0 评论 -
设置跳转到新的actvity之后不可返回
项目开发中需要实现退出登录功能,这里有一个问题 就是跳转到登陆界面之后,按返回键还是可以返回到 首页去。这里呢,解决办法有两种,一个是重写返回事件。第二种就是我要用的了 ,清空之前栈中所有的Activity,释放资源。代码如下:...原创 2018-04-08 12:06:25 · 1258 阅读 · 0 评论 -
Android recyclerView/listview的点击变色、点击换背景颜色
一言不合就上图点击变色: 这里没有用到什么高大上的技术点,只是静下心好好想想“面向对象”,利用一点小逻辑。 我这里用的是recyclerView控件,在recyclerView的适配器里: //先声明一个int成员变量 private int thisPosition; //再定义一个int类型的返回值方法 public int getthisPosition() {...转载 2018-03-09 15:07:21 · 3155 阅读 · 5 评论 -
仿微博国际版首页点击显示分组列表(popupwindow悬浮阴影效果)
需求:就是 标题了实现逻辑:CardView+Recyclerview实现具体实现的我问题:cardview的阴影效果不显示。 解决方案:1、调整compile的cardview 的版本,不要高于编译版本。 2、在cardview的布局上加上属性: ...原创 2018-05-02 16:37:13 · 465 阅读 · 0 评论 -
android 软键盘的收回
隐藏软键盘: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // 隐藏软键盘 imm.hideSoftInputFromWindow(getWindow().getDecorVie...转载 2018-05-09 18:43:41 · 2072 阅读 · 0 评论 -
checkbox设置颜色,style样式等
大家都知道设置CheckBox的选中以及未选中效果可以使用selector,这种方式比较简单也比较传统这里不做讨论。我最近在做项目的时候使用的是Appcompatcheckbox,这个控件是一个兼容控件,在support-V7包中 android.support.v7.widget.AppCompatCheckBox,主要是可以实现Material风格的效果,即使在Android5.0以下的系统也...转载 2018-05-22 15:40:45 · 24007 阅读 · 1 评论 -
项目接入实现复杂布局的vlayout
前言V- Layout 是阿里出品的基础 UI 框架,用于快速实现页面的复杂布局,在手机天猫 Android版 内广泛使用电商图让人激动的是,在上个月V- Layout终于在Github上开源!Github - alibaba - vlayout Github在五一假期我对V- Layout进行了详细分析,我将献上一份 V- Layout的使用攻略 & 源码分析,希望你们会喜欢。阅读本文前...转载 2018-03-08 09:40:25 · 4149 阅读 · 2 评论 -
Recyclerview删除数据后无法加载下一页数据(或者是漏了一条数据)
使用场景:项目中用到了“订单列表”界面,会有个删除订单的功能,点击删除之后,之前一页的10个数据会变成9个,然后加载更多就触发不了(也可能会少一条数据)分析:触发不了是我的recyclerview加载更多的条件没满足。这里说下为什么可能少一条数据——删除之后加载下一页数据实际上 后台返回的是重新排列后的数据,而你的前端界面显示的还是重新排列之前的数据。如果将当前页的最后一条数据设为A,下一页的第一...原创 2018-05-07 10:29:25 · 526 阅读 · 0 评论 -
切换activity的动画效果
overridePendingTransation(A,B);属性A:新的activity进入界面时的动画属性B:旧的activity出去界面的动画。常见属性有R.anim.slide_in_right, R.anim.slide_out_left原创 2018-03-05 15:48:11 · 169 阅读 · 0 评论 -
解决toolbar左边空出一部分的问题
最近自定义Toolbar之后,发现左侧不能完全填充,总是留一点空白,经过查看新发布的V7的支持包中的style发现了解决方法。查看Wiget.AppCompat.Toolbar的parent,如下:name="Base.Widget.AppCompat.Toolbar" parent="android:Widget"> item name="titleTextAppea转载 2017-09-06 08:50:30 · 2297 阅读 · 0 评论 -
APP欢迎页跳转
new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(WelcomeActivity.this,MainActivity.class); startActivity(intent); fin原创 2017-09-06 15:36:02 · 343 阅读 · 0 评论 -
总结和分析几种判断RecyclerView到达底部的方法
上一篇文章我讲到用事件分发的原理结合SwipeRefreshLayout写一个RecyclerView的上下拉,里面有一个判断RecyclerView是否到达底部的方法isBottom。我的同事用了这个上下拉之后发现有些小bug,没考虑周全,譬如各个子项高度不统一的时候,然后我找到原因是因为这个判断上下拉的问题。所以,我就去网上查到几种判断RecyclerView到达底部的方法,发现各有千秋。以下...转载 2018-03-08 17:51:46 · 385 阅读 · 0 评论