Android 开发
逻辑的清晰,编写的规范,是我一生之所求
tanghongchang123
逻辑的清晰,编写的规范,是我一生之所求
展开
-
Android Studio无法执行Java类的main方法问题及解决方法及找不到.idea的文件
Android Studio无法执行Java类的main方法问题及解决方法及找不到.idea的文件原创 2022-07-14 11:20:42 · 1056 阅读 · 0 评论 -
Android studio 4.0 以后 - 运行项目后不自启
具体解决方式 打开 - Edit Configurations… 选择Default Activity,不要选择Nothing 怎么让AS安装apk并且能够自动启动安装的应用。 查看清单文件AndroidManifest.xml是否有 <intent-filter> <action android:name="android.intent.action.MAIN" /> ...原创 2021-05-25 14:08:59 · 620 阅读 · 2 评论 -
Android .9.png图片的制作与使用
.9.png图片其实就是png格式图片,不过它比普通的png图片外围多了1px(像素)的边框,另外就是使用这种格式的图片可以实现背景自适应大小且不失真的效果。比如某些控件横竖屏切换后控件的样子就变形了,或者某些图片作为控件背景也变形,这会让人很郁闷。幸好.9.png图片可以提供这些需要的功能。制作使用步骤:1、制作属于你自己的png图片,一定要是png图片。可以自己PS制作,也可以解压其他应...原创 2020-03-31 14:34:49 · 2153 阅读 · 0 评论 -
Android 解决EditText右对齐兼容问题,一个属性搞定
问题描述:在使用EditText时,根据产品设计,某些地方需要让文字右对齐显示,光标默认也显示在最右边。这个时候我们自然而然想到设置android:gravity=”right” 这个属性,运行在模拟器跟自己的手机上都没出现问题。然后测试拿着手机测试,突然跟你说这个地方有问题,当你看到错位后的界面一脸懵逼。这尼M是怎么出现的?解决方法:1. 在布局中添加android:textC...原创 2020-03-31 14:12:58 · 719 阅读 · 0 评论 -
Android 直播、短视频平台第三方宝宝特效SDK接入方式
项目集成流程:1.获取APPKEY:进入哎吖科技官网:http://www.aiyaapp.com/,提交接入申请,填入applicationId获取appKey。(可以免费申请试用)2.添加Maven集成:在项目的build.gradle中添加引用,如图:3. 添加依赖compile 'com.aiyaapp.aiya:AyCore:v4.0.2'compile 'com.aiyaapp.aiy...原创 2018-04-02 18:22:28 · 2340 阅读 · 0 评论 -
java中String部分大小写转换问题
比如有String ABCDEFG,想将BC转化为小写字母,即输出AbcDEFG的形式,应如何操作呢?其中String和待转换substring均不定。String source = "A<a href="https://www.baidu.com/s?wd=BC&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1原创 2017-01-19 14:35:45 · 2048 阅读 · 0 评论 -
简单实现Android搜索功能 显示清除历史搜索记录
本文主要为大家分享了Android实现搜索功能,并且可以实时显示搜索的历史记录,根据输入的内容去模糊查询,供大家参考,界面图如下。本案例实现起来也非常的简单,所以可以直接拿来嵌入项目中使用,主要涉及到的知识点:1、数据库的增删改查操作2、监听软键盘回车按钮设置为搜索按钮 3、使用TextWatcher( )进行实时筛选 4、已搜索的关键字转载 2017-03-22 17:57:54 · 4218 阅读 · 5 评论 -
两个Fragment简单跳转示例
跳转起来有那么简单,我们为什么还要使用Fragment呢?这是因为Fragment相对Activity而言更加的轻量级,使用起来也更加灵活,在一个程序的内部界面切换,尽可能的用Fragment代替Activity会让我们的APP运行起来更加的流畅,更加的高效,同时也提高了界面的复用性。而却Fragment在适应多尺寸屏幕方面表现也非常优秀。 首先看一下例子,非常简单的一个小示例,效果图如原创 2017-02-03 10:19:54 · 742 阅读 · 0 评论 -
TabLayout与ViewPager和Fragment、FragmentPagerAdapter的合用
xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schema原创 2017-03-20 13:57:21 · 422 阅读 · 0 评论 -
Android MVP模式 简单易懂的介绍方式
MVP模式(Model-View-Presenter)可以说是MVC模式(Model-View-Controller)在Android开发上的一种变种、进化模式。后者大家可能比较熟悉,就算不熟悉也可能或多或少地在自己的项目中用到过。要介绍MVP模式,就不得不先说说MVC模式。MVC模式MVC模式的结构分为三部分,实体层的Model,视图层的View,以及控制层的Controller转载 2017-04-26 10:07:33 · 337 阅读 · 0 评论 -
xUtils3.0发送post请求如何传json的问题
今天在写项目的时候需要发起一个post请求,项目用了xutils3.0作为网络请求框架,post请求后台需要传递一条json字符串作为参数根据以前的经验只要写RequestParams requestParams=new RequestParams();requestParams.addBodyParameter("json",paramJSON);就可以实现了(额,什么鬼?第转载 2017-01-19 11:28:33 · 1000 阅读 · 0 评论 -
android判断EditText输入的数字、中文还是字母方法
String txt = edInput.getText().toString(); Pattern p = Pattern.compile("[0-9]*"); Matcher m = p.matcher(txt); if(m.matches() ){ Toast.makeText(Main.this,"输入的是数字", Toast.LENG原创 2017-01-04 17:43:08 · 477 阅读 · 0 评论 -
Android 搜索 把软键盘上的回车键改为搜索
需求为:当用户在发现界面内点击搜索按钮,弹出键盘,键盘右下角示意为“搜索”按钮,当用户输入内容后,点击搜索按钮将进行关键词搜索,当用户没有输入内容点击搜索按钮,将收起键盘,回到发现界面。具体实现如下: 1.修改Editview属性:android:imeOptions="actionSearch" 在该Editview获得焦点的时候将“回车”键改为“转载 2017-01-19 17:39:30 · 316 阅读 · 0 评论 -
android的UDP编程实例
一、有的手机不能直接接收UDP包,可能是手机厂商在定制Rom的时候把这个功能给关掉了。1、可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock;具体如下:复制代码代码如下:WifiManager manager = (WifiManager) this .getSystemServ原创 2016-12-13 14:21:28 · 5886 阅读 · 0 评论 -
Android常用的物理按键及其触发事件
Activity和View都能接收触摸和按键,如果响应事件只需要在继承类里复写事件函数即可;当一个视图(如一个按钮)被触摸时,该对象上的 onTouchEvent() 方法会被调用。不过,为了侦听这个事件,你必须扩展这个类并重写该方法,当一些物理按钮被按下时会调用onKeyDown()方法; 常见的按键消息和触摸消息[java] view plain copy转载 2016-11-02 10:00:29 · 8440 阅读 · 0 评论 -
android线程池
线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不阻塞主线程,每个步骤都创建个线程,在线程中和网络交互,用线程池就变的简单,线程池是对线程的一转载 2016-12-13 11:27:13 · 255 阅读 · 0 评论 -
Map读取键值对,Java遍历Map的两种实现方法
第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值import java.util.HashMap;import java.util.Iterator;import java.util.Set;public class HashMapTest2{ public static void main(String[] a原创 2016-07-19 16:25:32 · 7089 阅读 · 0 评论 -
Android Activity的Launch Mode
综述对安卓而言,Activity有四种启动模式,它们是:standard 标准模式,每次都新建一个实例对象singleTop 如果在任务栈顶发现了相同的实例则重用,否则新建并压入栈顶singleTask 如果在任务栈中发现了相同的实例,将其上面的任务终止并移除,重用该实例。否则新建实例并入栈singleInstance 允许不同应用,进程线程等共用一个实例,无论从何应用调用该实例都重用原创 2016-09-18 16:21:17 · 285 阅读 · 0 评论 -
关于Service中的耗时操作
由于Service和Broadcast一样,都运行在主线程中,所以在这两个里面我们无法做一些长时间的耗时操作,也就是说,如果我们有一个后台服务,是每隔一段时间请求一次服务器,类似于心跳服务,只是没有心跳服务那么频繁,例如每2个小时执行一次连接服务器操作,这样的话,我们的应用可能已经退出了,而我们仍需要这个服务时开启的,这种情况,我们第一反应是让Service运行在一个独立的进程中,这一点是可以做到原创 2016-11-25 17:24:14 · 1228 阅读 · 0 评论 -
Activity启动模式
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。Activity一共有以下四种lau原创 2017-04-26 10:15:20 · 346 阅读 · 0 评论 -
Mac OS X下安装配置MySQL数据库
最近需要在电脑上自己搭一个数据库,由于在大学期间使用的是MySQL,也算是对它情有独钟吧,这次在Mac上依旧就使用MySQL吧,在这里记录一下安装以及配置的过程(注:博文中使用的OS X版本为:10.11.4) MySQL下载要想配置,当然需要安装才能配置啦 (0.0,好像说了废话啦,哈哈)进入官网下载界面一般情况,首先想到的必然会是官方网站,这里给出下转载 2017-01-10 12:47:07 · 498 阅读 · 0 评论 -
mac 安装mysql + 修改root用户密码 + 及报Access denied for user 'root'@'localhost' (using password:YES)解决办法
到mysql的官网http://dev.mysql.com/downloads/mysql/ 然后在页面中会看到“MySQL Community Server”下方有一个“download”点击。 mac的选择.dmg文件下载即可。 点击了“Download”,然后会跳转到另外一个界面,这个界面是提示你需不需要注册的,直接选择最下面的“No thanks,just ta原创 2017-01-10 13:24:37 · 15968 阅读 · 1 评论 -
Navicat Premium for Mac 11.1.8 中文破解版
下载地址点击打开链接(https://pan.baidu.com/s/1i5t2phV),下载后直接安装就可以了转载 2017-05-08 13:48:54 · 819 阅读 · 0 评论 -
15 个 Android 通用流行框架大全
1. 缓存DiskLruCache Java实现基于LRU的磁盘缓存2.图片加载Android Universal Image Loader 一个强大的加载,缓存,展示图片的库Picasso 一个强大的图片下载与缓存的库Fresco 一个用于管理图像和他们使用的内存的库Glide 一个图片加载和缓存的库3. 图片转载 2017-01-09 10:40:31 · 274 阅读 · 0 评论 -
Android 调用系统的工具类
1. WebView获取及设置用户代理userAgent一、获取userAgent:WebView webView = new WebView(getApplicationContext());// 得到WebSettings对象 WebSettings settings = webView.getSettings(); // 设置支持JavaScript settings.setJavaSc...原创 2018-04-25 18:37:05 · 999 阅读 · 0 评论 -
讯飞语音听写API 未安装组件 错误码21001
在使用讯飞语音听写时,使用云端听写而不是使用本地出现这个未安装组件错误那可能就是so文件没有成功导入。文档中都是ADT环境的配置,在AndroidStudio中jar包等都和ADT差别不大,但是SO文件的导入有些区别。在AndroidStudio将so文件导入到jniLibs文件夹中就可以了: 导入之后再次运行在其APPID配置成功之后80%就没问题了。还有转载 2017-01-05 10:14:42 · 949 阅读 · 0 评论 -
Android快速开发系列 10个常用工具类
大家在Android Studio 打开Android 项目的时候,大家会发现在书写我们的代码,有很多重复性的代码,只是这些代码的方法名和参数不一样而已,其余的都差不多啊,所以,为了解决这样的文件,我们就创建了工具类,请看下面: 1、日志工具类L.java[java] view plain copy package com原创 2016-07-22 10:08:46 · 1258 阅读 · 1 评论 -
Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
在我们的开发工作时,findViewById可能是用得最多的函数之一,但它特别讨厌的地方就是我们经常需要对返回的view进行类型转换,输入麻烦、代码丑陋,例如以前我们在Activity中找一些子控件一般是这样 :@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(save原创 2016-11-18 13:37:21 · 465 阅读 · 0 评论 -
Android TV开发经验总结---初识TV开发
之前一直从事手机APP应用开发,由于工作的需要转入TV电视端的开发,初次接触确实有点懵逼,在TV开发过程中的处理思路跟手机还是有很大区别的,接下来将讲述下TV开发过程的经验,与大家一起分享共同学习。 刚接触TV开发,需要我们转变下思路,在TV开发中没有以前我们手机端的什么 dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 事转载 2016-11-02 10:09:06 · 1283 阅读 · 0 评论 -
Android TV Launcher开源项目
这个项目是机顶盒桌面,用来播放视频、显示图片、应用管理和其他针对机顶盒产品的设置。目前git和CSDN code上面都没有类似的开源项目,正好本人最近在开发类似产品,网上类似研究还非常少,完全自己实现还是比较困难。所以就把目前的项目开源出来,也有利于其他人少走弯路。 git项目地址 CSDN code项目地址项目框架结构 UI、adapter、实体类、图片cache、网络层。原创 2016-11-25 15:56:37 · 18661 阅读 · 5 评论 -
Android 手机开发和机顶盒开发的区别(软件角度)
通过开发电视类的应用和手机的应用,感觉主要有以下三种区别: 1、 分辨率 的不同手机的分别率320*480,480*800,480*854) 机顶盒 :TCL800:800x450 TCL720P:1280x720 机顶盒普遍比手机的分辨率要大很多而且宽要比高要要多,比如当前流行的手机分别率为480*800宽为480 高800转载 2016-10-31 15:28:33 · 1868 阅读 · 0 评论 -
Android电视机(机顶盒)初次开发的一些经验分享
从之前的web后台开发转到Android应用开发,做的第一个正式项目就是公司一个App的电视机(机顶盒)版本Demo开发。经过四个人近两周加班加点的开发和测试,总算按时交付了任务。在后续开发还没有开始之前,决定把这次开发当中学习到的一些知识和遇到的一些问题和大家的一起分享一下,由于也是刚开始做Android开发,并且是初次做电视机(机顶盒)上的开发,有什么不正确的地方,欢迎大家批评指正。另外,这也转载 2016-10-31 15:31:20 · 15102 阅读 · 6 评论 -
Android 手机开发和机顶盒开发的区别(硬件角度)
1、硬件配置的不同导致开发的应用会有所区别 手机的配置和机顶盒的配置还是有区别的,机顶盒的配置无论是cpu ,内存,存储设备(flash)的配置都要明显高于手机。所以基于对性能配置很高的应用或者游戏就可以应用于电视。1) 硬件加速设备 比如3d游戏 咱们普通的只是基于软件加速技术opengl es 。但是对于机顶盒就很有可能有硬件加速了,所以很多要求转载 2016-10-31 15:47:31 · 1763 阅读 · 0 评论 -
Android中的Thread, Looper和Handler机制(附带HandlerThread与AsyncTask)
Thread,Looper和Handler的关系与Windows系统一样,Android也是消息驱动型的系统。引用一下消息驱动机制的四要素:接收消息的“消息队列”阻塞式地从消息队列中接收消息并进行处理的“线程”可发送的“消息的格式”“消息发送函数”与之对应,Android中的实现对应了接收消息的“消息队列” ——【MessageQueue】阻塞式地从消息队列中接收消息并进行原创 2016-09-18 17:24:47 · 479 阅读 · 0 评论 -
RabbitMQ的Android端接收
本次做的项目,有一部分是通过RabbitMQ来传输的实时数据。然后我这Android端就需要研究怎么接收。以前用的volley什么的,都是用http通讯的,这个稍微不太一样,采用的消息队列的方式,生产者与消费者的设计模式,观察者模式。有次面试就挂这了TT。看了下RabbitMQ,可以服务端上可以设置为工作队列(Work queues)这种模式下,只有一个消息队列,但是有多个转载 2017-03-28 10:52:01 · 955 阅读 · 0 评论 -
Android 6.0学习
Android M:Android的6.0版本,即盛传已久的Android M已经在Google 2015年的 I/O大会上被正式发布。一个在业内已经被热议的议题是:Android M“为工作升级而生”(Android for Work Update)。有业内人士解释道:“Android M将把Android的强大功能拓展至任何你所能看到的工作领域。”根据Android系统以往原创 2016-06-30 10:28:49 · 603 阅读 · 0 评论 -
Android 6.0 中新的新技术
最近 Google 正式发布了 Android M,并命名为“棉花糖”(Marshmallow),对于开发者来说,有哪些新的技术和变化呢?本文尝试总结一下 Android 6.0(API 23)给开发者带来新的技术和改变。权限管理权限管理是 Android M 最大的改变,权限管理更加精细,并且由以前的安装时静态授权,改为现在的运行时动态授权。大家对 Android 的权限吐槽已久原创 2016-09-18 15:34:25 · 293 阅读 · 0 评论 -
Android6.0系统增加那些新特性
北京时间9月30日凌晨在美国旧金山举行2015年秋季新品发布会。在发布会上代号为“Marshmallow(棉花糖)”的安卓6.0系统正式推出。新系统的整体设计风格依然保持扁平化的MeterialDesign风格。Android6.0在对软件体验与运行性能上进行了大幅度的优化。安卓权限系统被重新设计了。全新的Android M相比目前的Android Lollipop(5.0)有十七项重大的改进原创 2016-09-18 15:44:37 · 742 阅读 · 0 评论 -
Android SDK6.0 学习
Android SDK6.0 学习> Android M新控件之AppBarLayout,NavigationView,CoordinatorLayout,CollapsingToolbarLayout的使用: http://blog.csdn.net/feiduclear_up/article/details/46514791> Android M新控件之FloatingAction原创 2016-09-18 15:49:55 · 447 阅读 · 0 评论 -
Android获取SD卡路径及SDCard内存的方法
本文实例讲述了Android获取SD卡路径及SDCard内存的方法。分享给大家供大家参考。具体分析如下:昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题。较好的方法是通过Env转载 2016-05-05 17:27:05 · 1610 阅读 · 0 评论