Android基础
mo_weifeng
任何新技术的诞生都是有原因的
展开
-
修改TextView中部分文本的字体及颜色
在Android应用开发中使用TextView控件展示一些文字内容时可能会遇到一些特别的需求,比如希望用特殊的字体或颜色标示出一段文字中的某些文字,一般开发者很容易想到用多个TextView控件把具有不同显示样式的文字拼接起来,这样能够实现,但是相对比较麻烦一些,而且扩展性和显示效果都不一定很好。本文是结合我在实际工作中遇到的需求的解决办法和我对这个问题的一点调查总结形成的博文,以备以后查阅。实现方法要实现一段文字中部分文字内容的字体大小颜色与众不同的需求,一般有三种实现方式:1、使用多个TextVi转载 2022-05-17 14:53:44 · 2828 阅读 · 0 评论 -
android Webview读取网页里的所有图片
<WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="wrap_content" />初始化,这里读的是文本 @SuppressLint("JavascriptInt...原创 2022-05-13 14:07:20 · 1114 阅读 · 0 评论 -
Android Studio 无线真机调试
“adb”不是内部或外部命令,也不是可运行的程序或批处理文件报这个错误的原因很简单,没有配置环境变量:配置环境变量步骤:在系统环境变量Path上新建:D:\androidSDK\android-sdk-windows\platform-tools配置完成后,直接重启电脑a. 第一步:手机用数据线连接电脑,保证设备连接成功。b. 第二步:打开cmd,输入命令:adb devices 如上,关连的设备列表为空,表示设备没有连接成功,检查重连。如上,关联的设备列表不为空,连接成功。c. 第原创 2022-02-21 15:00:06 · 2429 阅读 · 4 评论 -
Android 城市列表选择
最近开发一个城市选择的功能,找了这个文章Android 城市列表选择发现pinyin4j有一个很严重的问题,竟然长字chang识别为zhang,结果长沙北分在Z那一栏…原创 2021-03-22 11:47:06 · 1969 阅读 · 0 评论 -
Android RSA 公钥 私钥 加密和解密
公钥加密 /** * 公钥加密 * @throws Exception */ @Test public void testPublicKeyEncrypt() throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeExcept.转载 2021-03-16 13:46:48 · 780 阅读 · 0 评论 -
使用hellochart和AAChartCore开发联合查询表
下载官方demo修改即可:https://github.com/lecho/hellocharts-android代码:TempoChartActivitypackage lecho.lib.hellocharts.samples;import android.graphics.Color;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;import android.view.Layout.原创 2021-03-12 10:42:54 · 786 阅读 · 0 评论 -
Recyclerview分割线
1、import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.view.View;import androidx.recyclerview.widget.RecyclerView;public class MyDecoration extends RecyclerView.It.原创 2021-03-02 19:52:20 · 407 阅读 · 0 评论 -
Android实现点击空白处收起软键盘
1、布局根目录添加id,设置根目录的点击事件2、设置根目录点击事件:InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(view.getWindowToken(), 0);原创 2021-02-01 10:02:29 · 1148 阅读 · 0 评论 -
android高版本创建文件夹
今天发现高版本的安卓手机不能创建手机了,查了资料发现在manifist 中添加android:requestLegacyExternalStorage="true" 参考android 10 targetSdkVersion 29 真的不能在sd创建文件夹了?原创 2021-01-05 10:43:09 · 507 阅读 · 0 评论 -
gradle下载很慢,可使用第三方镜象地址,亲测有效
repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/googl...原创 2020-08-11 09:25:30 · 644 阅读 · 0 评论 -
即拿即用-仿微信模糊查询
仿微信模糊查询1、可对列表数据进行模糊查询 2、添加人性化功能:进入界面时EditText不自动弹出键盘,键盘收起的时候隐藏光标,键盘打开的时候退出界面隐藏键盘1、进入界面时EditText不自动弹出键盘EditText添加属性:android:focusable="true"EditText的上一层添加属性:android:focusable="true"android:focusableIn原创 2017-07-10 09:40:50 · 1860 阅读 · 0 评论 -
EditText不自动弹出键盘,界面退出隐藏键盘
1、在layout的xml文件中设置EditText的上级控件android:focusable="true"android:focusableInTouchMode="true";同时edittext控件android:focusable="true"即可将焦点拦截,让EditText不自动获取焦点。2、在AndroidMainfest.xml中选择哪个activity,设置windowSoft原创 2017-06-28 14:58:06 · 3036 阅读 · 0 评论 -
Activity之taskAffinity属性、allowTaskReparenting属性和Android退出整个应用解决方案
singleInstance: 当ActivityX使用了singleInstance之后: 会重建一个单独的Task栈用来放置ActivityX。 该Task栈只能放置ActivityX,即使其他的Activity使用了和ActivityX同样的taskAffinity也不行。 和singleTask一样,ActivityX不会重复创建taskAffinity: ActivityY使用了taskA原创 2017-04-16 23:47:59 · 14244 阅读 · 2 评论 -
反编译+混淆的攻守战
准备一个APK用于反编译和混淆的APK来自于《即拿即用-横向滚动+转场动画+GridView和RecyclerView动态添加》的Demo,地址:https://github.com/mocn26169/MultiViewpager首先我我们将apk签名并打包:密码都是123456789反编译代码1、下载工具dex2jar 这个工具用于将dex文件转换成jar文件 下载地址:http://sou原创 2017-05-13 12:25:53 · 1141 阅读 · 0 评论 -
解决通常每个套接字地址(协议/网络地址/端口)只允许使用一次
电脑装了360手机助手,每次手机连接电脑它就把Android Studio的端口给占用了,如下图:解决方法:1、在android studio底部的Terminal窗口中输入:netstat -aon|findstr 5037 , 如下图,会列出哪些进程占用了这个端口,后面是pid2、去任务管理器中进行杀死这个进程,根据pid来查找是哪一个,搞定!如果要看是什么程序占用了,可以输入 tasklist原创 2017-07-16 10:52:57 · 16034 阅读 · 0 评论 -
Handler内部运转机制
原理 我们都知道,我们开启一个子线程的时候,会在子线程中使用主线程创建的Handler传递消息给主线程去处理,那么在Handler内部是怎么样的一种处理流程呢?主要步骤为: 1. 用户启动一个应用,系统内部建立一个进程。 2. 进程启动主线程Main Thread。 3. Main Thread通过Looper建立一个消息队列Message Queue。 4. 消息队列是存在于原创 2017-03-16 21:06:47 · 548 阅读 · 0 评论 -
Android:可复制的TextView、EditText,复制文字到剪贴板
可复制的TextView只要设置android:textIsSelectable 为true就可以进行复制。 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textIsSelectable="true"原创 2017-07-13 18:27:09 · 9400 阅读 · 0 评论 -
Retrofit 中文乱码问题
使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理:解决: 1.GET请求改成POST; 2.参数Field改成Query 3.加上@FormUrlEncoded 如下:@FormUrlEncoded@POST("/test/test")Call<Response> register(@Field("name") String name原创 2017-07-04 10:49:12 · 4808 阅读 · 3 评论 -
ToolBar和ToolBar的setTitle()方法不生效解决方法
xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://sc原创 2017-06-24 11:27:09 · 3156 阅读 · 0 评论 -
Service之扩展知识(2)android:process
今天将会明白几个知识点:使用多进程有什么好处和坏处将Activity放到另外一个进程可以不占用系统分配的堆如何解决Application会被执行两次的坑两个程序如何共享一个进程的数据Service多进程时的使用注意情况包名相同,不同签名时,是不能同时安装的android:process 属性 设置 android:process,使不同应用的组件在相同的进程中运行,但前提是这些应用共原创 2017-04-24 22:04:26 · 5850 阅读 · 0 评论 -
即拿即用-横向滚动+转场动画+GridView和RecyclerView动态添加
效果图GitHub地址:https://github.com/mocn26169/MultiViewpager关键代码:1、Toolbar <android.support.v7.widget.Toolbar android:id="@+id/id_toolbar" android:layout_width="match_parent" andr原创 2017-05-06 19:11:08 · 1453 阅读 · 0 评论 -
Android存储路径详细说明
一、存储的分类Android的存储路径实际分类为内部存储路径 内部缓存存储路径外部存储路径 外部缓存存储路径在有些手机上,系统也会在内部划出一个内部的SDCard路径和内部存储路径,所以当有SDCard的时候,就会有6个路径存在了内部存储空间中的应用私有目录对于设备中每一个安装的 App,系统都会在内部存储空间的 data/data 目录下以应用包名为名字自动创建与之对应的文件夹。这个文件夹用于原创 2017-05-06 19:25:03 · 15964 阅读 · 0 评论 -
Service之简单使用
生命周期context.startService() ->onCreate()- >onStartCommand()->Service running--调用context.stopService() ->onDestroy() context.bindService()->onCreate()->onBind()->Service running--调用>onUnbind() -> onDestr原创 2017-04-22 23:32:43 · 570 阅读 · 0 评论 -
Android内存优化方案和内存泄露检测分析方法
常见内存泄露及优化方案1、单例错误写法:public class AppSettings { private static AppSettings sInstance; private Context mContext; private AppSettings(Context context) { this.mContext = context; }原创 2017-04-26 20:54:42 · 2280 阅读 · 1 评论 -
LoaderManager加载器初识
LoaderManager可以做什么LoaderManager,相当于一个监听器(观察者),它会实时监听底层数据的变化,一旦数据发生变化,就会通知loader,然后就可以做相应的处理。它的特点是嵌入在每一个Activity或者Fragment中的,且只有一个,我们可以不必关心它何时开启或者关闭,只要对数据进行相应的处理就好了,十分地方便。它在一个单独线程载入数据,监测底层数据源,当探测到有改变时就更原创 2017-04-27 22:09:59 · 388 阅读 · 0 评论 -
键盘显示时Editext获取焦点,键盘隐藏时失去焦点
做搜索框时遇到一个需求:键盘显示时Editext获取焦点,键盘隐藏时失去焦点,看起来比较人性化新建一个类,SoftKeyBoardListener:import android.app.Activity;import android.graphics.Rect;import android.view.View;import android.view.ViewTreeObserver;publ原创 2017-07-07 15:46:08 · 1353 阅读 · 1 评论 -
逗号分割符--字段中含逗号等情况的解析方法Java实现
/** * Java字符串逗号分割解析方法 * 本专门针对双引号中还有逗号或者某个字段无双引号的情况而设计的 * 例如要将字符串String sss="101,\"a\",\"中国,江苏\",\"b\",\"中国,北京\",1,0,\"c\""按照逗号进行分割解析 * 正确的split的结果是 (101)(a)( 中国,江苏) ( b)( 中国,北京) ( 1原创 2017-07-26 17:09:01 · 1151 阅读 · 0 评论 -
动态添加线程,然后监控多个线程是否都完成了
import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.View;import com.mwf.studyjob.R;import java.util.Arra原创 2017-07-29 11:52:11 · 1313 阅读 · 0 评论 -
进程保活
以前常见的进程保活方案有:监听系统广播、定时器、JobScheduler、双进程、提高Service优先级等。而现在Android版本更新到9.0了,面对高版本,比较行之有效的方法是:弹出通知栏、双进程、播放无声音乐双进程:Activity开启要被保护的Service,然后使用AIDL的绑定方式创建2个守护Service。这两个守护Service会互相唤醒,当其中一个失去连接时,会开启另外一...原创 2019-08-17 16:37:09 · 151 阅读 · 0 评论 -
升级AndroidX
很多人在升级Android Studio之后,发现项目疯狂报错,经过一番搜索,结论是你的项目需要进行AndroidX升级了。如何对老的项目进行AndroidX升级了,下面是几个步骤:1、...原创 2019-04-03 11:04:46 · 1902 阅读 · 1 评论 -
突然无法多个包依赖?
Android Module引用另一个Module,却无法使用里面的依赖库如果模块化开发中遇到多模块的AndroidManifest.xml没有合并or多模块的资源文件没有合并or模块A include了模块B,而无法使用模块B内依赖的其他aar包中的类的时候or提示Support包版本不一致这篇文章可能就是你要的解决方案~举个栗子:比如我们现在有一个App模块设计为:主工...转载 2019-03-04 15:35:46 · 206 阅读 · 0 评论 -
google map 参考开源项目
https://github.com/mapbox/mapbox-android-demohttps://github.com/SkyTreasure/Airbnb-Android-Google-Map-Viewhttps://github.com/akexorcist/Android-GoogleDirectionLibraryhttps://github.com/mitchtabian/...原创 2019-03-14 09:15:15 · 797 阅读 · 0 评论 -
Retrofit2.0 增加公共参数
有时候,我们会在请求里面加一些公共的参数,比如下面的&amp;quot;device=android&amp;quot;,Retrofit2.0应该怎么做呢?http://192.168.31.3:90/wallet/info?device=android我们可以使用Interceptor,Interceptor给我们的印象是可以拦截信息,但它也是可以改造请求然后再发出去。而且Interceptor还可以添加多个呢。 OkHt...原创 2018-11-27 11:16:05 · 3628 阅读 · 0 评论 -
Android如何查看应用签名信息
用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件,通过keytool -printcert -file META-INF/CERT.RSA命令打印证书信息,如微信证书信息如下图:可以查看签名的MD5、SHA1、SHA256值及签名算法...原创 2018-10-30 19:38:12 · 3706 阅读 · 0 评论 -
ScrollView嵌套ListView只显示一行和ScrollView嵌套RecyclerView
在开发的过程当中,由于手机屏幕的大小的限制,我们经常需要使用滑动的方式,来显示更多的内容。在最近的工作中,遇见一个需求,需要将ListView嵌套到ScrollView中显示。于是乎有了如下布局:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://............原创 2018-10-30 18:53:29 · 969 阅读 · 1 评论 -
Android,根据宽度,自动缩放高度
项目中有一个需求,就是展示图片宽度铺满,但是高度是要自动缩放的。 来上一个最普通的代码:&lt;ImageView android:id="@+id/img_background" android:layout_width="match_parent" android:layout_height="wrap_content" android:src=&q原创 2018-09-13 21:34:57 · 2099 阅读 · 1 评论 -
支付功能开发
下载的微信demo居然没有支付,后来在另外的地方才找到了有支付的demo。 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1GitHub上面有很多开源的工具,搜索关键词“android pay” https://github.com/search?utf8=%E2%9C%93&q=android+pay&...原创 2018-05-03 21:32:13 · 2363 阅读 · 0 评论 -
Android开发之小技巧
1、RecyclerView 的 LinearLayoutManager 提供了两个比较好玩的 API :reverseLayout 和 stackFromEnd 2、Dialog 的创建不能使用 ApplicationContext,会 crash。3、用 Activity A 去启动一个 Translucent Activity B,那么 Activity A 将不会调用 onSto...原创 2018-04-20 10:39:06 · 454 阅读 · 0 评论 -
使用ScrollView向上滚动出现返回键
https://github.com/mocn26169/ScrollViewDemo原创 2018-03-30 10:35:01 · 317 阅读 · 0 评论 -
魅族手机无法打印Log日志的问题
打开【设置】中的【开发者选项】,页面底部找到【性能优化】,打开【高级日志输出】,勾选【全部允许】即可原创 2017-11-13 12:22:17 · 682 阅读 · 0 评论