Android 日常开发笔记
Android开发笔记
menglong0329
不止于技术,不止于代码!
展开
-
判断context是否属于某个activity
Activity activity = (Activity)context;if(context instanceof MainActivity){ //TODO}原创 2020-10-27 11:30:58 · 880 阅读 · 0 评论 -
Android 复制粘贴
复制: private void copy(String data) { // 获取系统剪贴板 ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); // 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据),其他的还有 // newHtmlText、 // newIntent原创 2020-10-10 15:32:54 · 486 阅读 · 1 评论 -
Android Dialog全屏显示
网上大多数介绍的实现方式就是在styles.xml中添加<itemname="android:windowFullscreen">true</item>这个属性,但是自己按照操作不好使,后来自己尝试去做一下,总结方法如下代码Dialog dialog = new Dialog(this, R.style.Dialog);dialog.show();LayoutInflater inflater = LayoutInflater.from(this);View view.转载 2020-08-20 13:58:59 · 1235 阅读 · 0 评论 -
getPackageManager.getLaunchIntentForPackage(packageName)获取Intent为null
问题描述:在开发机顶盒App的时候,产品有一个需要跳转第三方App的需求,跳转代码如下:public void startApk(String packageName) throws NameNotFoundException { Intent intent = new Intent(); packageManager.getPackageInfo(packageName, Pa...原创 2019-04-04 11:44:23 · 6291 阅读 · 2 评论 -
使用Videoview播放视频,失败时禁止弹出“无法播放此视频”弹框
使用Videoview播放视频时,播放失败系统默认会弹出“无法播放此视频”的弹框,这样感觉不太友好,尤其是在主页:所以,即使视频播放不了也不要弹出这个对话框,操作如下:hospitalHomeVideo.setOnErrorListener(this);@Overridepublic boolean onError(MediaPlayer mediaPlayer, int i, i...原创 2019-04-11 13:21:03 · 4217 阅读 · 0 评论 -
Android静默安装 java.lang.NoSuchMethodException: installPackage []
项目中有一个应用商店的功能,需要App支持下载并静默安装,App是系统签名。之前封装的工具类,也测试过没有问题(机顶盒安卓系统是4.4.2版本),就直接拿过来用了,代码如下:public void installSilent(Uri apkUri) throws Exception { if (apkUri != null) { try { ...原创 2019-04-15 15:50:29 · 1109 阅读 · 0 评论 -
VideoView 设置音轨
需求:在项目开发中,由于市场在非洲,所以在播放多音轨视频的时候,默认需要播放“英文”的。代码如下://getTrackInfo得到音轨信息,通过比较getLanguage来判断语言类型,selectTrack设置要使用的音轨videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { ...原创 2019-06-11 11:03:13 · 770 阅读 · 0 评论 -
Android 各种View设置圆角
在项目开发中,经常遇到圆角展示的效果,例如有ImageView圆角、Banner条圆角、TextView圆角、Relative/LinearLayout整体圆角等,其实就是在外层加一层父容器,对父容器进行裁剪。 <com.star.film.sdk.vr.view.RoundRectLayout an...原创 2020-04-10 16:56:35 · 2901 阅读 · 0 评论 -
Android自定义View(七)Canvas学习
一、介绍Canvas称之为画布,但是并不是直接在Canvas画,而是canvas默认会创建一个bitmap,也可以通过构造方法或者setBitmap方法传入,像素所有的信息画在了这个bitmap上。二、drawBitmap()共有6个重载方法,但是其中两个参数最多的已经废弃掉了,那么就学习4个吧!在draw方法中,有一个很牛逼的方法:drawBitmapMesh,但是一般不会用到。...原创 2019-05-21 20:26:00 · 450 阅读 · 0 评论 -
Android自定义View(六)Bitmap基础
一、介绍Bitmap就是指一张图片,图片格式一般是png、jpg或是webp。二、Bitmap.ConfigPossible bitmap configurations. A bitmap configuration describeshow pixels are stored. This affects the quality (color depth) as well as the...原创 2019-05-21 11:11:36 · 958 阅读 · 0 评论 -
Android自定义View(五)着色器Shader
介绍:Shader is the based class for objects that return horizontal spans of colorsduring drawing. A subclass of Shader is installed in a Paint callingpaint.setShader(shader). After that any object (...原创 2019-05-16 18:33:45 · 420 阅读 · 0 评论 -
Android自定义View(四)混合模式PorterDuffXfermode
1.PorterDuffXfermode1.1 介绍PorterDuffXfermode有点类似数学中的交集,并集,用来两个图像间的混合显示模式,设置的是两个图层交集区域的显示方式,dst是下层,先画的图形;src是上层,后画的图形。1.2 构造方法PorterDuffXfermode(PorterDuff.Mode mode);构造方法中只需一个参数,PorterDuff.M...原创 2019-05-13 16:35:04 · 674 阅读 · 0 评论 -
Android自定义View(三)路径效果PathEffect
1.七种路径效果1.1 效果图1.2 具体方法 PathEffect();默认效果,就是直线 CornerPathEffect(radius); 将各线段之间的夹角变成圆角,radius是圆角的半径 new DashPathEffect(new float[]{10f, 5f, 20f, 15f},10);绘制虚线,intervals最少为2个,ph...原创 2019-05-13 14:38:53 · 362 阅读 · 0 评论 -
Android自定义View(二)基础绘制方法
1.绘制文字public class MyTextView extends View { Paint paint = new Paint(); private String str = "好好学习,努力奋斗,abcdefg"; public MyTextView(Context context, @Nullable AttributeSet attrs) {...原创 2019-05-13 14:12:32 · 213 阅读 · 0 评论 -
Android自定义View(一)了解
Android UI 架构图 Android中每一个控件都会占据一个矩形区域,控件大致可以分为View和ViewGroup,ViewGroup控件作为父类控件可以包含多个View。Android UI界面显示逻辑流程Activity setContentView—>Window setContentView—>PhoneWindow setContentView—-&...原创 2019-05-10 15:39:23 · 138 阅读 · 0 评论 -
Android9.0 禁止使用http访问网络
问题出现的原因?Google表示,为了用户的数据和设备的安全,针对Android P,也就是Android9.0及以后的应用程序,将要求默认使用加密连接,这意味着Android P将拒绝App中所有未加密的连接。需要使用(Transport Layer Security)传输层安全协议。解决方案:方案一:App改为Https请求方案二:targetSDKVersion 降到...原创 2019-10-21 14:19:48 · 1226 阅读 · 0 评论 -
Android Support v4\v7\v13和AndroidX的区别及应用场景
https://blog.csdn.net/csdn_aiyang/article/details/80859771原创 2020-03-27 09:41:06 · 785 阅读 · 0 评论 -
Android四大组件之一Activity介绍
一、Activity是什么: Activity翻译为活动,是Android app十分重要的一个组件,Activity的启动和组装方式是平台应用模型的基本部分,app的启动不同于平常编程范式伴随着main()方法,Android系统的初始化代码在Activity实例中唤醒特定的回调方法去响应Activity的特定生命周期阶段。二、Activity之间的两种跳转方式:隐式跳...原创 2019-02-14 19:16:09 · 590 阅读 · 0 评论 -
Android改变图标颜色
img.setColorFilter(Color.RED);图标要求是纯色和透明的原创 2019-03-13 17:38:59 · 1942 阅读 · 0 评论 -
清除缓存的封装 menglong0329
一.内存缓存及清除缓存的介绍在所有的App基本上都已经对数据及图片做了缓存,提高用户的体验度,也为客户节省了流量,说到缓存,大家也应该并不陌生,那么一部手机的内存是有限的,手机上面安装了那么多个App如果不对其缓存数据进行清除,对于手机的流畅度也有一定的影响,所以本文就对缓存数据做了一下清除的功能 二.清除缓存技术的介绍 大家也都知道,所有的App都有缓存的功能,那么他们各款A...原创 2017-02-07 22:54:48 · 276 阅读 · 0 评论 -
Activity的启动模式
Activity的启动模式Activity为什么需要启动模式? Activity的默认启动模式为Standard模式,在这种模式下,每次启动同一个Activity都会创建一个新的实例并将这个实例放在任务栈当中,而栈是一种“后进先出”的结构。当每次按返回键的时候都会有一个Activity出栈,直到栈内没有任何Activity之后,Android系统才会把这个任务栈回收。那么问题就来了,...原创 2018-03-11 22:30:25 · 130 阅读 · 0 评论 -
支付宝 menglong0329
第一步:登陆“蚂蚁金服”开放平台 (没有账号的申请一个并登陆)第二步:进入界面:点击“我有开发能力”3.点击“”创建应用“”(或还需填写个人信息)4.填写应用名称,点击创建(可以改变头像哦)5.点击应用环境(填写相关信息) 6.点击“设置应用公钥”(如上图)7.应用公钥生成8.我在此用了“支付宝秘钥生成器” (1)点击“支付宝秘...原创 2016-12-12 13:53:04 · 456 阅读 · 0 评论 -
百度地图 menglong0329
1.本篇博客简单介绍百度普通地图、百度定位地图、百度搜索功能2.首先登陆百度“”百度地图开放平台“”,下载SDK(没有账号的可以申请一下哦)3.点击“开发”,点击“Android地图SDK” 4.点击如上图“相关下载”5.在这里推荐下载“一键下载”,也就是说全部下载SDK文档6.下载完SDK后,进入正题,开始“普通地图”的创造7.首先,制作百度地图,需要一个秘钥,步骤如...原创 2016-12-21 10:00:35 · 352 阅读 · 0 评论 -
关于Android 出现65536,导致项目无法正常编译问题的解决
一、在app的build.dragle文件中添加依赖: compile 'com.android.support:multidex:' 二、添加 defaultConfig { ....... multiDexEnabled true ......} 三、在清单文件中声明Application,如果项目本身有Ap...原创 2017-07-14 18:38:29 · 370 阅读 · 0 评论 -
Android Aidl的使用
在Android Studio 中使用Android Studio DemoA一、在main文件夹下创建aidl文件夹(一定是文件夹,而不是包)二、在aidl文件夹下添加一个包(包名最好是和你的项目的包名一样), 在此包中创建一个class文件,将后缀名改为aidl,此文件中的方法是供另一个工程调用的三、创建一个执行aidl文件中执行声明的方法类 ...原创 2017-07-14 19:13:13 · 3647 阅读 · 1 评论 -
单例获取对象赋值后为null的现象
问题描述: 在项目开发过程中,我们建立许多的工具类,比如说:网络请求、图片加载,判断服务是否启动等。其调用方式最常用的有两种:1.直接使方法静态,这样就可以用类名.方法名直接调用。大家都知道,静态方法在一个项目中出现多次会影响项目的内存消耗,所以有好多人会选择第二种方式。2.方法不静态化,使用单例创建对象后,再调用方法。那么这个Bug就是在使用第2种方式调用方法的时候所造成的。...原创 2017-10-29 01:48:57 · 1994 阅读 · 0 评论 -
Android 生成不同dimens文件的方法
介绍: Android中官方建议的适配方法:dimens适配。就是在res文件夹下创建不同的values文件夹,在其文件夹下创建不同分辨率的dimens文件,比如说有两种分辨率,1980*1080和1280*720。那么他们两个就是1.5倍的关系。在实际开发项目中,一个App会很多很多个值,我们难道要用计算器或是纸笔一个一个计算吗,那样是不是太麻烦了,下面就为推荐一个工具类,就会自动生成...原创 2017-11-18 22:49:05 · 2414 阅读 · 0 评论 -
Android 补间动画之旋转动画RotateAnimation
Android动画系列博客导航: 1.介绍:在接下来的不断地学习Android动画期间,会总结相关知识点。旋转动画是Android补间动画中的其中一种,本篇博客主要总结了旋转动画的属性、实现方式、相关方法和一个小案例的实现。2.属性 duration 动画执行的时间 pivotX 旋转中心点的X轴坐标,50%。浮点数或是百分比,浮点数和...原创 2018-06-06 00:36:32 · 4457 阅读 · 0 评论 -
Android 补间动画之平移动画TranslateAnimation
Android动画系列 博客导航: 1.介绍:Android补间动画之平移动画,在实际的开发过程中,其实有好多地方需要用到平移动画,这是对于平移动画的简单介绍。 2.属性duration 时间 fromYDelta 动画开始点的Y轴坐标点,可以用三种方式表示: 1.数字50,表示当前View左上角的Y轴坐标+50px...原创 2018-06-10 00:37:09 · 23254 阅读 · 1 评论 -
Android TextVivew实现倒影效果
直接上代码:package com.star.starbox.display.view.base;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.LinearGradient;import and...原创 2018-12-24 20:18:36 · 311 阅读 · 0 评论 -
Android 解压文件
解压文件无非就是这几个步骤:1.指定要解压文件的位置和解压后文件或是文件夹的位置2.列出压缩文件中所有的文件或是文件夹3.如果是文件,则读取。如果是文件夹,则创建。以下为实例代码:public static void unzip(String zipFilePath, String targetPath) throws IOException { Ou...原创 2019-01-08 10:21:04 · 1079 阅读 · 1 评论 -
关于Android Studio将***.jar放在android.jar之前
今天做项目时刚好遇到这个问题,接下来就描述一下一、将***.jar包放入app的libs文件夹下 二、将***.jar与项目依赖(最重要的一步) 选中\app条目,按f4键 三、选中Dependencies 点击右边“+” 添加jar包 将Compile改为Provided 并且选中添加依赖的条...原创 2017-07-14 18:29:33 · 313 阅读 · 0 评论 -
Android h5 交互
Android h5 交互实现现在越来越多的公司在开发App时,选择了原生与h5的混合开发,那么h5开发的好处是什么呢?h5开发的好处: 一、实时更新升级:人们的需求在不断的发生着变化,APP应用为了跟上社会发展的步伐,不被用户所淘汰,因此会进行功能、版本上的更新,而这些都是应用直接在后台操作,并且把最新的版本推送到用户的面前,让用户直接获取最新的体验。 二、兼容性比较强:...原创 2017-05-23 20:49:39 · 258 阅读 · 0 评论 -
Glide的使用
图片加载框架Glide的使用废话不多说,直接上代码:1.添加权限 <!--加载网络图片所需要的图片--><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTE...原创 2017-03-27 17:48:01 · 242 阅读 · 0 评论 -
OkHttp menglong0329
1.配置 build.gradler compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.okio:okio:1.5.0' 2.get请求数据的事例 private void getDate() { //子线程中请求数据 new Thread() {...原创 2016-12-22 11:13:40 · 506 阅读 · 0 评论 -
Android Volley简单使用方法 menglong0329
1.这篇文章主要介绍Volley的post和get请求 (1)配置:凡是参与网络请求的,加入权限 <uses-permission android:name="android.permission.INTERNET"/> (2)下载官方的jar包,如果电脑上有git,可以使用如下命令: git clone https://...原创 2016-12-28 09:29:14 · 244 阅读 · 0 评论 -
RXjava的简单介绍 请求网络的Demo menglong0329
RxJava是一个实现异步操作的库 为什么同样是做异步,为什么人们用它,而不用现成的 AsyncTask、Handler... ... ?一个词:简洁。异步操作很关键的一点是程序的简洁性,因为在调度过程比较复杂的情况下,异步代码经常会既难写也难被读懂。 Android 创造的 AsyncTask 和Handler ,其实都是为了让异步代码更加简洁。RxJava 的优势也是简洁,...原创 2017-01-14 00:30:24 · 297 阅读 · 0 评论 -
Adroid6.0 动态权限申请、封装 menglong0329
一、简单介绍安卓6.0系统逐渐普及,对于安卓6.0中的SDK也有了一些变化,查看具体的详情请参考官方文档http://developer.android.com/intl/zh-cn/about/versions/marshmallow/android-6.0-changes.html,当然了,运行时权限也是SDK所发生的变化之一,那么本文介绍一下申请动态权限的步骤及简单的封装。 二、...原创 2017-02-06 22:51:45 · 464 阅读 · 0 评论 -
自定义控件之滑动解锁、圆中嵌字
自定义控件一、自定义控件介绍在安卓开发过程当中,其实安卓已经给我们开发人员提供了好多控件供我们使用,但是,在开发过程中,为了实现一些比较绚丽的效果,或是为了实现某些功能,就必须使用到自动以控件了,比如说在开发的时候,我们会用到椭圆形图形、本章索要所得滑动解锁等,都是需要用到自动以控件的。二、自定义控件的使用方法及绘制方法在安卓中开发中,控件都是在布局当中写的,那么自定义控件也是一样...原创 2017-02-11 22:21:50 · 2439 阅读 · 0 评论 -
AppBarLayout之悬浮视图效果、嵌套SpringView冲突处理 menglong0329
AppBarLayout之悬浮视图效果、嵌套SpringView冲突处理效果图 1.MainActivity布局 <?xml version="1.0" encoding="utf-8"?>...原创 2017-02-16 00:12:30 · 1468 阅读 · 2 评论