Android
文章平均质量分 79
女儿控伪全栈老徐
老徐是个典型的80后,从小看着圣斗士星矢和北斗神拳长大。上世纪末的时候接着家里的电话线第一次上了网,本世纪初的时候考上了一所211重点本科,学的计算机专业。毕业后就一直在这个行业里混着,从码农一直做到项目负责人,也考了项目管理的资质。技术能力谈不上有多大牛,但是在周围的新手码农们面前还是能装装样子的。注册CSDN的时间挺早的了,那会儿觉得CSDN乱乱的,其实现在也是。十多年前博客流行的时候,习惯把技术点滴积累写在另一个博客网站上。后来这网站关了,以后所有的记录全部都写在本地文档上了。最近心血来潮,捡起这个CSDN的账户,重开博客了。不知道能坚持多久,先这么着吧。。。
展开
-
安卓Android开发:获取手机上可分享的应用列表
安卓Android开发:获取手机上可分享的应用列表原创 2022-07-11 17:21:05 · 718 阅读 · 0 评论 -
安卓Android开发:使用Executor线程池代替AsyncTask进行异步操作
本文介绍了如何使用Executor线程池来代替AsyncTask进行异步操作,并且提供了完整的封装类,来模拟AsyncTask,并提供与AsyncTask一致的使用方式。原创 2022-06-06 10:40:42 · 1715 阅读 · 0 评论 -
安卓Android开发:使用AudioRecord录音、将录音保存为wav文件、使用AudioTrack保存录音
一、使用AudioRrecord录音1.1声明首先需要声明一个AudioRecord类的实例。之所以需要事先声明,是因为在本例中,录音的启动和结束被封装在两个不同的方法里。而通常来讲,“开始录音”和“结束录音”在大部分时候也确实是需要拆分成两个不同的动作的。private AudioRecord audioRecord;除了声明AudioRecord的实例之外,我们还需要准备一些参数:// 采样率,现在能够保证在所有设备上使用的采样率是44100Hz, 但是其他的采样率(22050,原创 2022-05-26 11:02:17 · 7755 阅读 · 14 评论 -
安卓Android开发:以ActivityResultLauncher方式进行页面跳转、传递参数、拍照或选择文件,以及调用系统应用打开各种类型的指定文件
ActivityResultLauncher是安卓官方推荐的用来替代startActivityForResult的新方式。通过它可以非常方便地调用系统Intent进行拍照,或是选取本地的文件。本文共分为5个章节 :一、定义ActivityResultLauncher二、注册Launcher三、调用系统Intent四、使用FileProvider复制一份文件五、使用系统应用打开各种类型的指定文件一、定义ActivityResultLauncher在需要调用系统Intent.原创 2022-05-24 21:45:07 · 4013 阅读 · 1 评论 -
在安卓中使用属性动画实现基本动画效果
一、属性动画与View动画与属性动画相对的是View动画,关于View动画的简单介绍详见:在安卓中使用Animation类实现基础动画效果在安卓中使用AnimationSet类同时执行多种动画效果View动画虽然能够满足基本的动画效果,但是有一个比较致命的缺点:UI界面上的元素看起来似乎是移动了,但那只是你眼睛所看到的“假象”,如果使用View.getX()或View.getY()来查看元素的位置,会发现它一直都没有变化。也就是说,你的眼睛看到它移动了,实际上它真正的位置根本没有变.原创 2022-03-30 11:19:16 · 783 阅读 · 0 评论 -
Android组件实现左滑露出右侧操作按钮
一、最终效果说在最前:本例不包含任何第三方库,不集成任何轮子,全部使用Android自带的UI组件和标准事件。滑动方向可任意修改,滑动效果可放置在任何View组件上。先来看最终效果,下图左侧的蓝色就是向左滑动后的view,而右侧的三个按钮就是滑动后显示出来的操作按钮:二、思路1.利用FrameLayout的布局顺序效果,后布局的元素会遮挡先前布局的元素2.使用一个CardView容器,将FrameLayout及其中的遮挡层、下方的操作按钮等全部都放在这个CardView容器中原创 2022-03-28 21:10:42 · 3043 阅读 · 0 评论 -
使用AlertDialog实现使用在android中弹出对话框,询问用户是否继续执行
代码非常简单,套路也比较固定:第一步:创建AlertDialog对象AlertDialog.Builder builder = new AlertDialog.Builder(this);注意在构造函数参数列表中的“this”其实是一个Activity的对象。第二步:设置弹出框的小图标、标题、提示文字的内容以及是否允许用户进行取消操作:builder.setIcon(and原创 2017-06-29 16:10:35 · 5931 阅读 · 0 评论 -
在Linux中安装AndroidStudio
首先通过谷歌国内的开发者官网可以下载到最新的android-studio安装包:https://developer.android.google.cn注意到官网上有如下的说明:安装 Android Studio安装说明 如需在 Linux 系统中安装 Android Studio,请执行以下操作:1.将您下载的 .zip 文件解压缩到您应用的相应位置,例如 /usr/loca原创 2017-06-29 16:31:02 · 15814 阅读 · 1 评论 -
安卓开发:使用手机拍照功能
概述在安卓开发过程中,使用手机拍照功能的核心代码其实非常简单,仅仅只是一句呼唤系统Intent而已:Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");要是软件开发真的这么简单就好了,而且核心代码也仅仅只是核心代码而已。为了完成整个过程:调用手机摄像头、拍照、剪切照片、获取照片、处理照片,还是需要围绕核心原创 2017-07-01 21:14:35 · 5831 阅读 · 0 评论 -
安卓开发:从系统相册选择照片
概述与调用系统摄像头拍照类似的,从系统相册选择照片的核心代码也仅仅只是一句呼唤系统Intent:Intent intent = new Intent("android.intent.action.GET_CONTENT");不过我们同样也要围绕这句核心代码做很多准备工作。第一步:获取权限从系统相册获取照片,需要对存储器的读写操作权限:注意:比较悲剧的是,这两个权限原创 2017-07-02 16:08:25 · 3208 阅读 · 1 评论 -
安卓开发:使用AsyncTask异步向服务器发起request请求
概述Android并不允许开发人员在UI主线程中直接向服务器发起请求,因为如果请求得不到响应,那么UI线程就可能会被挂起,你的老板就会指着你的鼻子大吼“你特么这编的什么软件!”。所以我们需要借助AsyncTask类来产生一个异步线程,然后在这个异步线程中向服务器发起异步请求。一、编写异步处理类,继承AsyncTaskpublic class MyTask extends Async原创 2017-09-10 21:26:43 · 2568 阅读 · 0 评论 -
安卓开发:以Base64字符串形式上传文件——从Android选择文件并上传
简述在常规的web开发过程中,大部分上传文件都是在web页面端通过表单直接提交,再由服务器端捕获请求来进行处理的。但是在前后端分离趋于一种流行趋势,再加上Android和iOS开发技术日渐成熟,大部分团队都会选择在服务器端仅提供一套通用的webservice数据接口,而web页面、Android和iOS统一都通过这套数据接口来向服务器发送请求和获取数据。在这一过程中,大部分的webserv原创 2017-09-10 21:29:37 · 5720 阅读 · 2 评论 -
在Ubuntu下进行安卓开发遇到“insufficient permissions for device: user in plugdev group; ”问题的解决办法
开发环境:Ubuntu 16 .04IDE:Android Studio开发语言:Java在接入设备进行联机调试的时候,遇到了这样的问题:insufficient permissions for device: user in plugdev group; are your udev rules wrong?在网上查了一下资料,主要问题是一些非标设备默认无法被识别,解决办法也非常简单,记录如下:首...原创 2018-07-03 08:52:16 · 24904 阅读 · 7 评论 -
解决在 Ubuntu下新安装AndroidStudio,Logcat无输出,AndroidProfile无输出的问题
操作系统:Ubuntu16.04 LTSIDS:AndroidStudio 3.1.3原因非常简单,因为Ubuntu是新安装的,因此其实系统中并没有安装 adb相关的包。但是这个问题我也是找了很久都没有发现,直到最后自己想要手工重启一下adb服务,才发现的:完成安装后,问题就解决了...原创 2018-07-03 09:16:36 · 729 阅读 · 0 评论 -
关于Android6.0以上动态获取运行时权限、及无法正常运行百度地图API的问题
Google早在Android6.0的时候就全面修改了应用程序的权限申请机制,除了需要在AndroidManifest.xml配置文件中事先做好权限配置之外,部分被认为是危险的系统权限还需要在代码中专门去单独申请。Google将这一改变称为“运行时权限(RunTimePermissions)”由于之前一直有在用百度地图API实现一些地图定位的小功能,而自己手边并迟迟没有得到Androi原创 2017-05-08 14:07:20 · 6491 阅读 · 1 评论 -
使用Google官方API进行全球定位
其实现在在国内很多的开发人员可能会选择使用国内厂商的API来进行定位和相关的地图操作,比如百度、高德或者腾讯地图。而Google官方API的最大问题在于可能会受到网络限制,换句话说,你可能需要“梯子”。一、配置和基础代码第一步:获取权限 第二步:在代码中定义一个LocationManager类的实例:LocationManager locationMan原创 2017-04-25 10:23:45 · 2058 阅读 · 0 评论 -
在安卓手机中读写文件基本方法
做了很多年的Java B/S开发,主要应用场景都是一些企业级的应用或平台开发。大部分情况下对于数据的读写和存储都是在数据库或者服务器session中进行的。但是在安卓手机上,遇到本地文件的读写的情况还是挺多的,所以整理一下。第一步:权限在AndroidManifest.xml配置文件中增加对文件读取的权限:第二步:代码首先要确认的是,安卓不同于iOS,文件的读写是分原创 2017-04-25 09:57:54 · 6379 阅读 · 1 评论 -
在使用AndroidStudio打包apk时,遇到“xxx is not translated in xxx”错误的解决办法
如上图所示的错误这是因为在string.xml文件中出现的字符串定义没有多过语言版本。一个最笨的解决办法就是将多国语言版本的string.xml补充完整。不过还有更简单的方法。方法一:将错误修改为警告:点击AndroidStudio的菜单项中的“settings”然后在打开的设置面板中,在左侧菜单栏中选中“Editor”下的“Inspections”,然后在右侧原创 2017-04-28 16:15:30 · 5664 阅读 · 0 评论 -
在安卓中使用AnimationSet类同时执行多种动画效果
在安卓开发中,AnimationSet允许一个界面组件同时执行多种动画效果,例如一边旋转,一边移动,同时缩放尺寸。而AnimationSet类本身是Animation类的子类,而Animation类则是用于实现基础动画效果的。关于如何使用Animation类来实现基础动画效果,可以参考我的这篇文章:http://blog.csdn.net/freezingxu/article/detail原创 2017-04-28 16:46:15 · 12135 阅读 · 0 评论 -
Android上常用的几种本地数据存储方式:3、SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite.SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。转载 2017-04-18 16:36:49 · 6516 阅读 · 0 评论 -
Android上常用的几种本地数据存储方式:2、文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。文件可用来存放大量数据,如文本、图片、音频等。默认位置:/data/data//files/***.***。 代码示例:public void save(){ try { Fil转载 2017-04-18 16:31:20 · 740 阅读 · 0 评论 -
Android上常用的几种本地数据存储方式:1、使用SharedPreferences存储数据
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。转载 2017-04-18 16:25:21 · 2349 阅读 · 0 评论 -
最近觉得Android Studio的黑色主题简直充满了工业美感
这是最新的Android Studio的工作界面,浮动在Android Studio前面的黑色窗口是vim。怎么看都觉得有一种工业美感。相比之下觉得水果的xcode显得有点gay里gay气的...原创 2017-04-18 21:56:02 · 3315 阅读 · 1 评论 -
Activity之间的数据传递和回传
1、假定需要进行数据传递和回传的两个Activity为A和B,首先由A打开B,并传递一些数据到B。当B打开后,根据从A处获得到的数据,进行不同的业务操作,并在关闭的同时将不同业务操作所造成的不同的结果数据再还给A。在这里有两个概念: requestCode:在A调用B的时候所设置的请求编码,用这个编码,A自身在接收到来自B的返回信息时,可以区分要做怎样不同的操作。 resu原创 2017-04-19 09:03:52 · 2874 阅读 · 0 评论 -
实现从屏幕底部向上弹出新窗口的思路
第一步:设计要弹出窗口的xml布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" andr原创 2017-04-19 09:14:09 · 3461 阅读 · 0 评论 -
使用Google的zxing组件识别二维码时,调整扫描区域和取景框的大小
Zxing 是google提供的二维码扫描工程Demo本身默认的扫图区域最大只有 360*480 需要拉开很远的距离才能将整个二维码扫描到因此需要我们自己调整取图大小 在CameraManager.java这个类中进行调整默认的大小是 以下这4个参数 // private static final int MIN_FRAME_WIDTH = 240; //转载 2017-04-24 16:52:22 · 5348 阅读 · 1 评论 -
Android和javascript相互调用
大致的思路如下:1.用WebView来显示HTML代码2.允许WebView执行JavaScriptwebView.getSettings().setJavaScriptEnabled(true);3.获取到HTML文件,也可从网络中获取webView.loadUrl("file:///android_asset/index.html"); //HTML文件存放在ass转载 2017-04-24 16:57:36 · 483 阅读 · 0 评论 -
使用安卓手机的NFC功能进行数据读取操作
记录一下使用安卓手机的NFC功能来识别各类高频RFID标签或卡片的基本操作思路。因为我的项目中还存在有大量的业务逻辑代码,所以只能整理出当中的一些重要步骤,并贴上代码片段。1、第一步:在AndroidManifest.xml配置文件里增加以下权限需要注意的是,在sdk的版本是9的时候,仅仅只支持对ACTION_TAG_DISCOVERED操作。为了能够支持其它的数据类型操作,请原创 2017-04-24 14:53:42 · 17817 阅读 · 4 评论 -
在安卓中使用VideoView来播放视频
第一步:在Activity中放入一个VideoView组件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orien转载 2017-04-25 09:07:15 · 2453 阅读 · 3 评论 -
Android上的APP图标常见尺寸规范
1. 程序启动图标:LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。MDPI (Medium Density Screen, 160 DPI),其图标大小为 48 x 48 px。HDPI (High Density Screen, 240 DPI),其图标大小为 72 x 72 px。xhdpi (Extra转载 2017-04-18 16:22:38 · 8857 阅读 · 0 评论 -
在安卓中读取并显示网络图片
代码非常简单:String urlOfImage = “网络图片地址”;URL imageUrl = new URL(urlOfImage);HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();conn.setDoInput(true);conn.connect();InputStream is原创 2017-04-25 09:26:57 · 904 阅读 · 0 评论 -
在安卓中使用Animation类实现基础动画效果
Animation类是安卓所提供的实现基础动画效果的类,一共有四种不同的效果:半透明渐变、旋转、缩放和移动。可以说所有的复杂动画都可以由这几种基本效果组合而成。而实现这四种效果也非常简单。先来看例子,以下是界面。这个界面上有一张图片,这张图片就是用来展示动画效果用的。图片下方有几个按钮,点击可以展示不同的动画效果:构成界面的代码如下,一个ImageView和四个Button组件,没原创 2017-04-28 10:43:42 · 1368 阅读 · 0 评论