![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
老黑牛
一头在Android和Flutter领域深耕的老黑牛!
展开
-
适配Android 6、7、8、9、10期间遇到的坑
1、h5 https请求的图片加载不出来;https请求无法访问;解决办法:Webview里添加:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW...原创 2020-02-12 20:29:45 · 1956 阅读 · 0 评论 -
android 获取当前webview显示的网页的源码和网页中框架的源码
如果是仅仅是为了获取网页的源代码的话,可以参考这篇文章:Android: 在WebView中获取网页源码但是,我遇到的情况是网页中套用了框架,仅仅查看网页源代码是不能得到我想要的数据的,需要获得框架的源代码,经过多次测试,终于找到解决办法。 废话不多说,直接上代码: 自定义WebViewClient代码:public class MWebViewClient extends WebViewCli原创 2017-02-26 15:41:22 · 6496 阅读 · 0 评论 -
recyclerview 数据混乱
如上图,这是我的item layout,这是我的bindView里的代码:public void bindView(int position) { ChatMessage msg = mMsgs.get(position); if (msg.getFrom().equals(Constants.PEER)) { mRec原创 2017-03-07 10:10:35 · 793 阅读 · 0 评论 -
android 设置状态栏的颜色
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setStatusBarColor(getStatusColor()); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT原创 2017-03-12 21:17:45 · 836 阅读 · 0 评论 -
软键盘挡住输入框问题的终极解决方案
参考:1、Android 爬坑之旅:软键盘挡住输入框问题的终极解决方案 2、 WebView adjustResize windowSoftInputMode breaks when activity is fullscreenpackage com.jicq.utils;import android.app.Activity;import android.graphics.Rect;impo原创 2017-03-13 21:12:10 · 794 阅读 · 1 评论 -
打开和关闭输入法的实现
我的edittext在一个dialog中,实现目标:当dialog弹出时,输入法自动打开。 实现方法: mTaskEditText = (EditText) view.findViewById(R.id.edit_task); mTaskEditText.setText(content); mTaskEditText.setFocusable(true);原创 2016-09-13 09:14:57 · 1258 阅读 · 0 评论 -
关于RecyclerView的notifyDatasetChanged和notifyItemxxx方法的一个注意点
场景是这样的: RecyclerView的item中有一个button,点击button后会删除这个item,如果我调用mAdapter.notifyDataSetChanged();,数据正常显示,但如果我调用mAdapter.notifyItemRemoved(position);,就会出现删除异常的各种问题,比如数组越界的问题等等。原因分析 经过分析源码,发现notifyDataSetCh原创 2017-05-27 10:26:00 · 4358 阅读 · 0 评论 -
dialog、activity等进入、退出动画实现
无论是dialog还是activity,都是附着在window上的,因此,可以借用window的相关属性实现进入退出动画。 以dialog为例:dialog.getWindow().getAttributes().windowAnimations = R.style.edit_dialog_style;R.style.edit_dialog_style<style name="edit_dialo原创 2017-05-10 09:14:14 · 1312 阅读 · 0 评论 -
上下文菜单
Android中实现菜单的方式有: - Menu - PopWindow - ContextMenu 这里来试着说一说ContextMenu的用法。 先来看效果图: 实现步骤:为指定的View注册上下文菜单 registerForContextMenu重写onCreateContextMenu onContextItemSelected这两个方法。下面是详细的示例代码:原创 2017-08-11 16:25:16 · 610 阅读 · 0 评论 -
MVP模式初探
之前一直听说MVP的好处多多,也看过相关资料,但是没有仔细研究过,今天看了看面试题,发现竟然让用MVP模式实现登录功能,于是抓紧研究了下。 关于MVP的介绍以及与MVC的区别网上有相当多的资料可以参考,这里推荐鸿翔大神的博客 我这里引用下MVP和MVC的区别,方便查看: 其实最明显的区别就是,MVC中是允许Model和View进行交互的,而MVP中很明显,Model与View之间原创 2017-08-15 21:01:53 · 612 阅读 · 0 评论 -
使用AlarmManager实现精确定时任务
最近实现了一个小项目:定时执行任务。(项目地址) 坑:①执行时间不准甚至不执行。 ②各种查资料,无果(可能是搜商不够)。最终实现:①将写的应用加入手机的白名单或添加为保护程序(不同的手机有不同的叫法),允许程序锁屏后能运行。 ②代码实现思路:使用pendingIntent.getBroadcast(…)实现到指定时间发送广播,再定义一个广播接收器,当接收到此广播后启动一个servi原创 2016-09-13 09:26:50 · 1548 阅读 · 0 评论 -
Retrofit2.x官方文档翻译
官方原文地址简介Retrofit可以将你的HTTP API转换成Java接口。public interface GitHubService{ @GET("user/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user);}Retrofit类生成一个GitHubService接口的实现。Retrofi翻译 2017-10-16 09:08:51 · 564 阅读 · 0 评论 -
自定义View系列-滑动选择分数或者刻度
效果图写在最前面详细源码及demo地址:GradeLayout源码。导进你的工程中直接使用:compile 'jack.view:gradelayout:1.0'上传到github中的已进行过拓展,可以动态更改一些属性,详见github的README.md。实现前的分析我们可以把整个布局分为两部分,一部分是上面的分数显示,一部分是下面的滑块显示。对于分数的显...原创 2018-03-18 16:03:22 · 586 阅读 · 0 评论 -
ScrollDelLayout-仿qq左滑删除
效果图实现分析 如上图,整体布局分为两部分,一部分是屏幕内的布局,一部分是屏幕外的布局,屏幕外的布局就是滑动时需要滑进屏幕内要显示的布局。这两部分布局可以是任意的View,最重要的是这个整体布局的选择,一开始为了简单,直接使用了LinearLayout作为了整体布局,但是发现效果不尽人意,又使用了RelativeLayout,效果也不是很好,当时没空去分析具体的原因,最终直接自定...原创 2018-04-07 09:24:57 · 411 阅读 · 0 评论 -
NumberPicker源码分析+自定义View简单实现NumberPicker
NumberPicker介绍 A widget that enables the user to select a number from a predefined range. There are two flavors of this widget and which one is presented to the user depends on the current t...原创 2018-04-07 11:47:30 · 1741 阅读 · 0 评论 -
Android琐碎(壹)
壹、Android studio中依赖下载不下来在terminal里输入gradlew build --refresh-dependencies,按下回车键。此命令的作用是强制Androidstudio重新下载所有依赖。(mac下输入 ./gradlew build --refresh-dependencies)贰、设置activity全屏并且隐藏下面的返回键在style中设置 <...原创 2018-12-01 18:07:39 · 299 阅读 · 0 评论 -
<string>改变部分字符串的样式(颜色等)
<string name="log_location_detail"><Data><![CDATA[1、消息存储位置:<br> <font color="#FF0000"> <b>  原创 2017-03-18 14:37:09 · 2760 阅读 · 0 评论 -
关于手机图片问题的笔记
启动手机自带的图片浏览器:Uri imageUri=Uri.parse(imageFile.getAbsolutePath());Intent intent=new Intent(Intent.ACTION_VIEW);intent.setDataAndType(imageUri,"image/*");startActivity(intent);启动手机相机拍照:File picFile=ne原创 2017-03-17 21:27:29 · 441 阅读 · 0 评论 -
Android Studio下提示Couldn't load BaiduMapSDK_v3_1_0
遇到这种错误真令人疯狂!原创 2016-04-23 12:49:45 · 536 阅读 · 0 评论 -
连接部分真机不能打印Logcat
参考如下:http://www.aiuxian.com/article/p-2540285.html android真机调试 logcat日志不输出或者输出内容较少时解决方法 分类: Android | 作者: ziven2012 相关 | 发布日期 : 2015-07-01 | 热度 : 917° 最近在调一个小的android应用,拿到自己的荣耀3c 4g机器上来调试的转载 2016-05-09 19:35:58 · 581 阅读 · 0 评论 -
DialogFragment自定义dialog的位置和大小
@Override public void onResume() { super.onResume(); Window dialogWindow = getDialog().getWindow(); WindowManager.LayoutParams lp = dialogWindow.getAttributes(); dia原创 2016-09-12 22:24:26 · 8613 阅读 · 0 评论 -
Android中如何做到Service被关闭后又自动启动
首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。我们在使用某些Android应用的时候,可能会发现安装了某应用以后,会有一些服务也会随之运行。而且,这些服务每次都会随着手机开机而启动。有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从程序员的角度来说转载 2016-09-05 16:25:31 · 840 阅读 · 0 评论 -
自定义View学习摘要笔记(三)
学习资料:1、Canvas之translate、scale、rotate、skew方法讲解! 2、安卓自定义View教程 3、《android群英传》徐宜生 4、Android Canvas的save(),saveLayer()和restore()浅谈 5、Approximate a circle with cubic Bézier curves事件分发机制原理View的结构: 1、主原创 2016-10-22 21:04:45 · 451 阅读 · 0 评论 -
自定义View学习摘要笔记(一)
学习资料:1、Canvas之translate、scale、rotate、skew方法讲解! 2、安卓自定义View教程 3、《android群英传》徐宜生 4、Android Canvas的save(),saveLayer()和restore()浅谈 5、Approximate a circle with cubic Bézier curvescanvas基础:/*** * ①和原创 2016-10-17 11:43:56 · 454 阅读 · 0 评论 -
View自定义学习摘要笔记(二)
学习资料:1、Canvas之translate、scale、rotate、skew方法讲解! 2、安卓自定义View教程 3、《android群英传》徐宜生 4、Android Canvas的save(),saveLayer()和restore()浅谈 5、Approximate a circle with cubic Bézier curvesPathMeasure此类主要是用来测量Pat原创 2016-10-20 21:18:29 · 416 阅读 · 0 评论 -
android 多线程下载图片--mooc笔记
public class DownLoad extends Thread { private static final int THREAD_NUMBER = 3; private URL mImageUrl; private Executor mExecutor = Executors.newFixedThreadPool(3); private Handler mH原创 2016-10-12 17:01:36 · 389 阅读 · 0 评论 -
笔记--viewpager实现广告轮播
效果图: public class HomeFragment extends Fragment implements ViewPager.OnPageChangeListener { private static final String TAG = "HomeFragment"; private static final int AUTO_BANNER = 1; priva原创 2016-10-19 19:26:55 · 415 阅读 · 0 评论 -
EditText and TextView显示一行
效果图: <EditText android:id="@+id/demo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:em原创 2016-10-19 12:53:53 · 5978 阅读 · 0 评论 -
android 获取状态栏高度--利用getIdentifier()
private static int getStatusHeight(Context context) { int height = 0; int resourceId = context .getResources() .getIdentifier( "s原创 2016-11-23 19:57:49 · 968 阅读 · 0 评论 -
afinal----finalDB向数据库里save数据出错:sava error:sqlInfo is null
解决方案:将实体里的定义的属性的m前缀去掉(private int mUserName 改成 private int userName)。 本质原因:finalDB是通过setter和getter来设置数据的,当属性为mUserName时,而此时的setter方法为setUserName,而不是setmUserName,所以出现了错误,设置成setmUserName时候就不会出错了。原创 2017-01-11 21:13:47 · 1038 阅读 · 0 评论 -
Android RecyclerView滚动定位到item,并使其置顶
/**准确定位到指定位置,并且将指定位置的item置顶, 若直接调用scrollToPosition(...)方法,则不会置顶。**/ mLayoutManager.scrollToPositionWithOffset(index + 1, 0); mLayoutManager.setStackFrom原创 2017-01-17 17:09:47 · 13859 阅读 · 5 评论 -
使用环信的“坑”
虽然叫做“坑”,但其实是平时不太注意的细节,说到底还是个人原因,哎吆歪。 NOTE1:接受消息的方法,他是运行在子线程中的。public void onMessageReceived(List<EMMessage> list)原创 2017-01-24 22:04:54 · 641 阅读 · 0 评论 -
notifyDataChanged不起作用的原因
1、数据源没有在UI线程改变,用Handler就可很容易解决。 2、修改的数据与一开始的数据指向的不是同一块内存(其实就是不是是同一个数据源)。原创 2017-01-24 22:08:13 · 1592 阅读 · 2 评论 -
关于alarmmanager.set() or .setExact() 任务启动时间不准的一点想法(未实现)
个人想法,未实现,仅仅为了记下来待以后真的需要时实现。 对于将缓存清理后以及锁屏一段时间后定时启动不准的问题的能想到的解决方案: ①在需要启动定时任务的时间点的前一段时间用PowerManager.WakeLock唤醒CPU (调用acquire(long timeout) ),此做法的目的是使CPU提前启动以待真正的 需要的定时任务能准时启动(耗电量不是很大,可以采用)。 ②一直唤醒CP原创 2016-05-28 08:16:09 · 5739 阅读 · 0 评论