android
许遥
当你的知识不足以支撑你的野心时,请静下心来学习!
展开
-
Android子线程更新UI
Android子线程更新UIView.post()方法Handler类runOnUiThread()方法 new Thread(new Runnable() { @Override public void run() { textView.post(new Runnable() { @Override public void run() { } });原创 2021-08-23 11:34:52 · 141 阅读 · 0 评论 -
Android 注解学习第一步,了解注解
注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种: 生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等 跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在原创 2017-03-27 17:01:55 · 230 阅读 · 0 评论 -
Android注解学习第二步,初探注解,注解view
我们要到的效果如下代码: /** * 使用的Xutils框架进行的注解使用 */@ContentView(R.layout.activity_main)public class MainActivity extends AppCompatActivity { @ViewInject(R.id.button) Button button; @Override原创 2017-03-29 16:22:59 · 199 阅读 · 0 评论 -
Android注解学习之了解Java动态代理Proxy
直接来看代码: 首先了解一下动态代理的关键词:InvocationHandler: 1.java.lang.reflect.InvocationHandler:这是调用处理器接口,它自定义了一个 invoke 方法,用于集中处理在动态代理类对象上的方法调用,通常在该方法中实现对委托类的代理访问。2. InvocationHandler 的核心方法第一个参数既是代理类实例,第二个原创 2017-03-31 11:46:17 · 336 阅读 · 0 评论 -
Android注解学习之事件注解
1.首先看下我们需要的效果: @OnclickInject(R.id.button) public void clickButton(View view) { switch (view.getId()) { case R.id.button: Toast.makeText(this, "点击了", Toast.LENGT原创 2017-03-31 12:22:03 · 773 阅读 · 0 评论 -
身份证号码验证的工具类,学习备用
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Hashtable;public class IDCardValidate { public static final String[] ValCodeArr = { "1", "0", "x", "9", "8", "7", "6", "5", "转载 2017-06-01 11:34:00 · 798 阅读 · 0 评论 -
关于kotlin插件 MVP Generator的使用方式
无意间在android studio中看到了 MVP Generator 插件,插件的github地址为:https://github.com/stfalcon-studio/MVPHelper;插件的作者没有说明这个插件的具体使用方式,导致做为新手折腾了好一段时间啊,现在记录一下这个插件的使用方式,该插件主要是快速创建mvp框架,其中使用了MVP + Dagger + Rx , 是编写Kotlin原创 2017-08-31 19:22:35 · 2576 阅读 · 1 评论 -
Android studio 多版本apk 打包
只需要在build.gradle中的 android{…….}中配置几行代码即可: //配置多版本的apk productFlavors{ Beta{ applicationId "com.stfalcon.mvphelpersample.beta" manifestPlaceholders = [app_name:"转载 2017-09-12 10:17:34 · 400 阅读 · 0 评论 -
关于You must not call setTag() on a view Glide is targeting错误处理
该错误的产生原因: 是View使用setTag后导致Glide之前请求的标记被清除,强制转换过程中不能将你给定的类型判断为Request类型所致。if (tag instanceof Request) { request = (Request) tag; } else { throw new IllegalArgume原创 2017-10-27 10:53:59 · 440 阅读 · 0 评论 -
Android 加载需要携带cookie的图片请求
工具类:package com.project.jiashihu.network;import android.content.Context;import android.view.View;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.bumptech.glide.load.model.原创 2017-10-27 11:00:55 · 2072 阅读 · 0 评论 -
Fragment 嵌套 Tablayout+ViewPager+fragment 遇到的问题
Fragment各种空白的问题,这个让我头疼了两天得问题终于找到了解决得办法,主要就是处理ViewPager的Adapter; 1.如果是少量的固定的Tab和Fragment,那么正常处理就行; Adapter代码如下: public class Find_tab_Adapter extends FragmentPagerAdapter { private L原创 2017-11-04 01:08:26 · 3016 阅读 · 1 评论 -
EventBus 传值问题
EventBus3.0,Fragment 跳转到外部activity后,从外部activity传值到fragment,无法接收的问题首先分析一下问题的所在;解决这个问题的办法 有两个首先分析一下问题的所在; 通过debug fragment生命周期,我们发现如果我们把 EventBus的注册和注销写在onResume 和onPause中时,那么从外部activity传值过来时,就不会执行Eve...原创 2019-04-17 13:33:41 · 582 阅读 · 0 评论 -
Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientatio
这个问题是Android 版本的适配问题;android 8.0 (API=26) 适配遇到的两个问题解决方法:有两种,根据需求选择其一,或者两个一起用也行(横屏方向问题)(1)去掉android:screenOrientation;(主题 样式)(2)android:windowIsTranslucent 改为false; 如果需要透明的设置加上android:window...原创 2019-06-21 15:40:24 · 3052 阅读 · 0 评论 -
解决Android Studio 在app主module,依赖module中的依赖库找不见类的原因
implementation声明的依赖包只限于模块内部使用,不允许其他模块使用。 api声明的依赖包时, 模块依赖于此模块,此模块使用api声明的依赖包是可以被其他模块使用在app 的build.gradle 中把依赖替换,替换如下: compile 要用 implementation 或 api 替换 testCompile...原创 2019-07-01 14:32:08 · 4493 阅读 · 0 评论 -
导入lib库时发生的错误:Manifest merger failed with multiple errors, see logs
原因:As的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme,android:label),则此时会合并失败,并报上面的错误。方法:在Manifest.xml的application标签下添加tools:replace="android原创 2017-02-22 17:02:58 · 702 阅读 · 0 评论 -
WebView加载H5页面及自动播放网页内置的音乐的方法
1.添加权限<uses-permission android:name="android.permission.INTERNET" /> 2.布局文件<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />3.简单的加载原创 2017-02-13 12:20:01 · 10096 阅读 · 0 评论 -
Android 图片压缩和缓存工具类
package com.example.xuzuowei.myapplication;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.ut原创 2017-01-09 19:06:58 · 271 阅读 · 0 评论 -
ubuntu中在Launcher上添加Android Studio的运行图标
运行命令创建desktop文件:sudo gedit /usr/share/applications/android_studio.desktop打开窗口后输入以下内容,注意Exec和Icon要修改成自己系统下Android Studio的路径。[Desktop Entry]Type=ApplicationName=Android StudioExec="/文件目录/a原创 2016-06-26 00:39:02 · 1041 阅读 · 0 评论 -
Linux中修改DNS的方式
Linux中修改DNS有两种方式,临时修改和永久修改,下面分别介绍。1、临时修改网卡DNS地址代码如下:sudo vim /etc/resolv.conf改为如下内容:代码如下:nameserver 8.8.8.8 #修改成你的主DNSnameserver 8.8.4.4 #修改成你的备用DNSsearch localhost #你的域名原创 2016-06-26 03:16:01 · 1145 阅读 · 0 评论 -
Ubantu系统下安装android studio的简单步骤
1.软件的准备: 从android studio 官网下载,或者http://tools.android-studio.org/ 下载liunx 版本的;2. 环境的配置:jdk的配置: 参考http://blog.csdn.net/qq_33716443/article/details/51760650;3. android studio 的安装:1.找到android studio.zip格原创 2016-06-27 22:51:48 · 778 阅读 · 0 评论 -
android studio 使用友盟多渠道打包
1.首先需要在项目工程的清单文件Androidmanifest.xml 中配置如下代码: <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>2.接下来需要在在build.gradle文件中配置如下代码://还需要配置你的签名: config { keyAlias原创 2016-06-21 18:09:46 · 311 阅读 · 0 评论 -
Android 程序员必须掌握的三种自动化测试方法
在日常的开发中,尤其是app开发,因为不像web端那样 出错以后可以热更新,所以app开发 一般对软件质量有更高的要求(你可以想一下 一个发出去的版本如果有重大缺陷 需要强制更新新客户端是多么蛋疼的事情)。恩,所以我们app的开发者 一定要学会自己测试自己的代码 自己测试自己的app,不要寄希望于测试来帮你找bug,实际上,我工作多年的经验告诉,绝大多数隐藏极深的bug 都是开发自己发现的。所以 今转载 2016-07-20 10:44:00 · 337 阅读 · 0 评论 -
Android-transulcent-status-bar
Android-transulcent-status-bar总结最近业务上看到一个设计图挺好看,所以研究了一下透明状态栏,注意不是沉浸式状态栏,在参考了网上的一些资料后,整理出了这篇博客.Github Demo 链接: StatusBarCompat参考文章:由沉浸式状态栏引发的血案Translucen转载 2016-07-20 10:58:51 · 256 阅读 · 0 评论 -
android系统时间循环更新
package com.example.date;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;原创 2016-07-20 13:22:39 · 541 阅读 · 0 评论 -
ListView的Item显示动画的简单实现
1.设置好ListView的Adapter后; 2.执行如下方法: private void startLayoutAnim() { //通过加载XML动画设置文件来创建一个Animation对象; Animation animation = AnimationUtils.loadAnimation(this, R.anim.slide原创 2016-08-09 15:39:41 · 1737 阅读 · 0 评论 -
Android studio无法关联源码的解决方案
android studio无法关联源码1,找到jdk.table.xml的路径:在C盘:\userName\.AndroidStudio2.0\config\options\jdk.table.xml2,用编辑器打开jdk.table.xml文件,如下图: 上面图所展示是是其中一个平台的结构, 在这个xml中,包含了所有配置好的源码文件。 而每一个转载 2016-11-09 10:03:41 · 378 阅读 · 0 评论 -
Activity之AppCompatActivity与toolbar的结合
对于技术类的博客,我们永远追寻最新API脚步,在API22之前我们使用标题栏基本都是在ActionBarActivity的Activity中处理的,而API22之后,谷歌遗弃了ActionBarActivity,推荐我们也可以说是强制我们使用AppCompatActivity。然而ActionBarActivity与AppCompatActivity的使用大同小异,下面我们将介转载 2016-11-16 18:14:18 · 289 阅读 · 0 评论 -
优雅的开始Activity
为什么要优雅的startActivity()呢??在我们实际的开发项目中,和同事之间经常要进行代码的合并衔接,那么对于一个我们自己写的活动界面,我们知道需要什么参数,但是作为同事,他可能就不知道了,而是要重新看你的代码逻辑,看需要传递什么参数过来,无疑会浪费时间,而且看不全面,出现传递参数不对的问题,那么就需要优雅的开启Activity了,这里我借鉴郭霖书里面的写法在每一个要Activity的代码原创 2016-12-13 12:57:41 · 366 阅读 · 0 评论 -
合理的关闭所有Activity
为什么要合理的的管理Activity呢?相比不用多说了吧!我们在代码中经常写各种activity,对用Activity的管理经常凌乱,经常忘记释放资源,或者对多个activity要一次关闭,那么在每一个activity中写finsh(),或者递归关闭,相对都比较烦,既然非得这个干,那么干嘛不知道偷个懒,写个管理类,直接管理,多方便,看代码! 创建一个Activity的管理类:原创 2016-12-13 13:42:26 · 236 阅读 · 0 评论 -
Android五大存储方式之File文件存储
File文件存储方式的工具类原创 2016-12-14 13:59:03 · 436 阅读 · 0 评论 -
Linux下的模拟器硬件加速
Intel提供了一个叫HAXM的虚拟硬件加速技术,全称为:Intel Hardware Accelerated Execution Manager. 只要你的CPU是intel的产品并且支持VT(virtualization Technology)就可以使用HAXM技术将你的模拟器的速度提升至真机的水平。目前此技术支持苹果的Mac系统和Windows系统,但Linux平台不在此列。转载 2016-06-26 00:35:46 · 832 阅读 · 0 评论