![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
沙湖的天地
初学者
展开
-
ScrollBy & ScrollTo
ScrollBy和ScrollTo都是view的方法,二者有很大的不同。1.public void scrollBy(int x, int y) ; 它是移动view的内容,它其实调用了ScrollTo方法。 源码: public void scrollBy(int x, int y) { scrollTo(mScrollX + x, mScrollY + y); }原创 2016-11-01 10:58:55 · 292 阅读 · 0 评论 -
Android 自定义view(画表盘)
自定义View就是继承一个View的子孙类或View类,然后重写其中的一些方法来完成界面的美观效果。 效果: 布局: <so.wih.android.myview.MyLayout android:layout_width="wrap_content" android:layout_height="wrap_content" />代码:pub翻译 2016-12-20 14:28:26 · 588 阅读 · 0 评论 -
Android application详解与用法
1:Application是什么?Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在man转载 2016-12-20 15:40:53 · 408 阅读 · 0 评论 -
Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。 如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?通过Context.getExternalFilesDir()方法可以获取到 SDC转载 2016-12-30 20:42:17 · 531 阅读 · 1 评论 -
Android Studio使用Lint进行代码检查
Android Studio作为Google官方推荐的IDE,功能非常强大,其中提供了一套静态代码分析工具,它可以帮助我们检查项目中存在的问题,让我们更有规范性的开发App。它可以检查出:xml文件中是否存在hardcode硬编码、unused resources没有使用到的资源、probable bug可能的bug等等。Android Lint的使用找到Analyze目录下的Inspect Cod转载 2017-02-08 18:19:16 · 489 阅读 · 0 评论 -
Google下拉刷新控件SwipeRefreshLayout
SwipeRefrshLayout是Google官方更新的一个Widget,可以实现下拉刷新的效果。通过源码我们可以知道SwipeRefreshLayout继承了ViewGroup。 SwipRefreshLayout中存在一个接口,通过此接口我们可以监听滑动手势,其实使用此组件最重要的步骤就是实现此接口的onRefresh方法,在此方法中实现数据的更新操作。 swipeRefres原创 2017-02-19 11:40:43 · 268 阅读 · 0 评论 -
android 格式化本地时间
简单易用格式化本地时间的方法: DateFormat dateInstance = getDateInstance(); DateFormat dateTimeInstance = getDateTimeInstance(); DateFormat timeInstance = getTimeInstance(); String s1 =原创 2017-02-08 17:51:14 · 985 阅读 · 0 评论 -
Android中 Bitmap和Drawable相互转换的方法
1.Drawable—>BitmapResources res=getResources();Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0); Resources res=getResources(); private byte[] Bitmap2Bytes(Bitmap bm){2.Bitmap—->Drawa转载 2017-02-15 17:49:37 · 458 阅读 · 0 评论 -
ANDROID Toolbar
Toobar主要是用来替换ActionBar的,换句话说,ActionBar能做的,Toolbar都能做。如果你对ActionBar的使用比较熟悉,你会发现Toolbar使用起来非常简单。既然是替换,当然用Toolbar的时候就得先去把ActionBar给隐藏掉.隐藏ActionBar的方法有很多,可以通过代码的方式隐藏,也可以通过配置文件的方式,我们主要是通过配置文件的方式来隐藏。在我们的styl原创 2017-03-06 14:35:34 · 365 阅读 · 0 评论 -
android中的shape属性
在android自带的控件中如按钮,输入框都不如ios的控件好看,我们一般都会仿照ios的控件的效果。只需在drawable目录下新建一个xml文件,修改控件的样式。如button_shape.xml<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/an原创 2017-03-20 18:00:44 · 396 阅读 · 0 评论 -
Android 自定义控件 ---DecorativeListView
项目上有个仿地图上楼层切换的控件,虽然不是太熟悉。但是,百度百度还是有一些好的例子。我也好久没写博客了,就把这个控件封装好了,放在了我的GitHub。控件可以实现的功能:设置ListView显示的条目个数。设置ListView的数据和选中的条目。获得条目点击的回调。废话不多说,先来张效果图:原理:这个控件由两张图片和一个ListView组成,我们将他们添加到一个线性布局中即可实现。这么简单,原创 2017-09-23 01:10:25 · 677 阅读 · 1 评论 -
Android 仿高德地图可拉伸的BottomSheet
项目上要用到类似高德地图搜索结果后的结果展示的可拉伸控件。由于没有找到合适的软件,制作的效果有点差,将就看下。自己的效果: 虽然说效果没有高德的好(就是在下滑的时候不能准确折叠到中间),但是基本满足了项目的需要。如果各位大神有更好的方法,欢迎留言提供方法。刚开始以为这是抽屉效果(slidingdrawer),结果发现这个类已经被谷歌抛弃,且content也不能滑动,得自定义控件实现。但是我的自定义原创 2017-11-11 18:52:31 · 10475 阅读 · 3 评论 -
Rxjava2基础
1、简介RxJava: Reactive Extensions for the JVM Rxjava : JVM的响应式扩展。RxJava是响应式扩展的Java VM实现:通过使用可观察序列组合异步和基于事件的程序的库。 它扩展了observer模式以支持数据/事件序列,并添加了操作符,允许您以声明的方式将序列组合在一起,同时抽象出对底层线程、同步、线程安全性和并发数据结构等方面的关注...翻译 2018-07-17 16:33:29 · 674 阅读 · 0 评论 -
Android滑动退出---SwipeBackLayout
我们的项目用到了滑动退出Activity,但是,在有的Activity中又处理了onTouch事件,导致了事件冲突,在网上搜到了SwipeBackLayout项目,使用后发现效果非常好! 项目地址:https://github.com/ikew0ng/SwipeBackLayout 这是一个中国开发者贡献的开源项目。 使用: 1.Moudle:app下添加依赖。dependencies {原创 2017-01-04 18:06:00 · 1037 阅读 · 0 评论 -
Android解决异常: startRecording() called on an uninitialized AudioRecord.
今天使用AudioRecord进行录音操作时候,报了下面的异常。E/AndroidRuntime(22775): Java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.解决办法: 1.看权限是否添加;<uses-permission android:name="android原创 2016-12-26 09:32:15 · 11572 阅读 · 0 评论 -
手势解析工具类-GestureDetector
当我们在需要重写onTouchEvent(MotionEvent event)方法,处理MotionEvent.ACTION_DOWN、MotionEvent.ACTION_MOVE、MotionEvent.ACTION_UP事件,记录位置等,大家写的代码大多是相同的,所以谷歌给我们封装了一个手势解析类-GestureDetector。1.创建手势解析工具类GestureDetector mGest原创 2016-10-31 14:58:56 · 292 阅读 · 2 评论 -
利用ViewPager实现轮播图
轮播图的实现网上有很多资源,写这篇文章只是回顾所学的知识。对ViewPager的一些处理,比如适配器各个方法的作用等。 布局:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/原创 2016-10-28 15:58:12 · 279 阅读 · 0 评论 -
自定义属性中format的取值类型详解
对于自定义属性一直是一知半解,忽然之间感到不能再这样迷迷糊糊了,就准备看看自定义属性怎么写,看到format取值有很多类型,很迷茫,所以查了查资料。 1、format = “color” 颜色值 (1)属性定义<declare-styleable name="名称"><attr name="textColor" format="color" /></declare-styleable>(2)原创 2016-10-27 15:39:48 · 2584 阅读 · 0 评论 -
设置时间对话框-DatePickerDialog
之前看到设定日期的效果很好看,就想知道怎么做的,查了资料,原来是用的TimePickerDialog控件。DatePickerDialog控件和时间设置控件TimePickerDialog用法差不多。public class MainActivity extends AppCompatActivity { private Button btnset; private Calendar原创 2016-10-27 09:49:56 · 485 阅读 · 0 评论 -
AlarmManager类
最近工作有用到定时器的功能,我原来也没有接触过关于定时器的功能,在网上找了些资料,了解了一下AlarmManager类.一、AlarmManager类 这个类提供了对系统报警服务的访问。二、.结构关系 extends Object三.获取这个类的实例AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SE翻译 2016-10-26 16:30:04 · 304 阅读 · 0 评论 -
android 获取屏幕的分辨率
android 获取屏幕的分辨率在开发手机的应用程序时,除了底层对API的掌握之外,屏幕分辨率的概念也是相当的重要的。DisplayMetrics 类:Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。DisplayMetrics类包含了显示信息,大小,维度,字体等;DisplayMetrics对象里的widthPixel及原创 2016-10-24 17:12:20 · 403 阅读 · 0 评论 -
Android WebView的使用
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。webview有两个方法:setWebChromeClient 和 setWebClientsetWebClient:主要处理解析,渲染网页等浏览器做的事情setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebViewClient就是帮助WebVi转载 2016-12-12 19:30:58 · 279 阅读 · 0 评论 -
开源框架----ButterKnife的使用
ButterKnife是一款强大的依赖注入框架,而且可以一键找到控件。 github上的地址:https://github.com/JakeWharton/butterknife 在android studio中使用: 第一步:在Project的build.gradle的dependencies下添加classpath ‘com.neenbedankt.gradle.plugins:andro原创 2016-12-05 18:29:43 · 320 阅读 · 0 评论 -
Dagger2的简单使用
Dagger2的优点 * 没有使用反射,图的验证、配置和预先设置都在编译的时候执行 * 容易调试,完全具体地调用提供和创建的堆栈 * 更高的性能,谷歌声称他们提高了13%的处理性能 * 代码混淆,使用派遣方法,就如同自己写的代码一样第一步:在project/build.gradle 文件下添加 classpath ‘com.neenbedankt.gradl原创 2016-12-06 20:10:31 · 273 阅读 · 0 评论 -
ActionBar的简单使用
ActionBar介绍在API22之前我们使用标题栏基本都是在ActionBarActivity的Activity中处理的,而API22之后,谷歌遗弃了ActionBarActivity,推荐我们也可以说是强制我们使用AppCompatActivity。 ActionBar是位于Activity顶部,用于显示Activity的图标,标题,以及菜单的。可用于导航等功能,广泛应用于View的交互。Ac翻译 2016-12-07 19:58:16 · 316 阅读 · 0 评论 -
Android开发,使用Wifi调试真机
转载自:http://blog.csdn.net/listeners_gao/article/details/51485669 首先还是用USB线连接手机,然后找到Android SDK的playform-tools目录,在此通过命令行运行: adb tcpip 5555。在UBUNTU系统中,会返回“restarting in TCP mode port:5555”。接下来,设置手机连接转载 2016-12-08 10:22:35 · 273 阅读 · 0 评论 -
is 32-bit instead of 64-bit动态库错误分析
前段时间因项目需要,需要MP3格式的录音,需要引用LAME开源库,在引用so库文件时,提示Java.lang.UnsatisfiedLinkError: dlopen failed: “liblame.so” is 32-bit instead of 64-bit错误,网上分析了出现这种情况的原因,可能是混合使用了32bit和64bit的库文件,如果系统先使用64bit的库文件时,则后续的库文件都是转载 2016-12-23 20:12:40 · 20903 阅读 · 4 评论 -
Android studio编译libjpeg-turbo-2.0.0
前言项目上jni里用了libjpeg-turbo-1.5.0,在优化项目时猜测这个库有点“老”了,就产生了编译最新版本的库,然后下了虚拟机装了ubuntu,ubuntu上又装了各种工具,看文档BUILD.md也是各种懵逼,原来文档上说的命令都是要写到.sh脚本下的,然后在执行sh脚本。当你去寻找so库时会发现,so库生成在libjpeg-turbo-2.0.0文件夹下,而且文件夹下还有很多源码...原创 2018-08-10 19:12:20 · 2197 阅读 · 2 评论