![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 71
太晚说再见
设计者确定其设计已经达到完美的标准不是不能再增加任何东西,而是不能在减少任何东西!
展开
-
Android中Bundle类的作用
Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt(),putXxx()用于往Bundle对象放入数据,getXxx()方法用于从Bundle对象里获取数据。Bundle的内部实际上是使用了HashMap类转载 2016-08-31 23:14:33 · 297 阅读 · 0 评论 -
安卓中的编写自定义控件
标题栏中的返回按钮,其实不管在哪一个活动中,这个按钮的功能都是相同的,即摧毁当前活动,而如果我们在每一个活动中都需要重新注册一遍返回按钮的点击事件,无疑会增加很多代码,最后的情况是使用自定义控件。1.首先定义一个通用的布局title.xml:xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://s原创 2017-06-15 22:50:27 · 173 阅读 · 0 评论 -
安卓RecyclerView的用法
ListView效率太低且只能够纵向滑动不能横向,若需要横向的话就需要用RecyclerView来实现,官方也推荐使用这种方式。1.在app/build.gradle中加入依赖包dependencies { compile 'com.android.support:recyclerview-v7:25.3.1'}然后点击Sync Now来自动下载相应的库。模型原创 2017-06-14 23:26:44 · 322 阅读 · 0 评论 -
安卓中的LitePal的使用
Litepal是一款android数据库框架,采用了对象关系映射(ORM)的模式。关系映射简单地说就是我们使用的编程语言是面向对象的编程语言,而使用的数据库是关系数据库,那么将面向对象的变成语言和面向关系的数据库之间建立一种映射关系,这就是对象映射关系。它可以让我们以面向对象的思维来操作数据库,而不用再和SQL语句打交道。要使用LitePal,首先要在app/build.gradle文件中的d原创 2017-06-23 11:45:20 · 490 阅读 · 0 评论 -
安卓开启服务的方法
1.服务类:继承Service,实现onBind()方法返回IBinder对象,新建一个继承自Binder的内部类并在部内类的方法中返回活动服务交互的内容,定义一内部类对象,public class BindService extends Service{ private int count; private boolean quit; // 定义onBinder方法所原创 2017-06-12 19:41:29 · 434 阅读 · 0 评论 -
安卓的IntentService的用法
普通的Service存在两个问题:1.不会启动一个单独的进程,Service与它所在应用位于同一个进程;2。Service不是一条新的线程,所以若在Service中处理耗时任务会带来ANR的问题。使用IntentService时不会产生这样的情况,它将耗时任务放在onHandleIntent()中执行,这样,应用还能得以相应。MainActivity.java:package co原创 2017-06-12 20:09:52 · 211 阅读 · 0 评论 -
安卓中发送广播的方法
1.在主活动中庸sendBroadcast(Intent intent)方法,Intent对象指定该广播类型2.新建一个继承BroadcastReceiver的类并重写onReceived()方法,在里面或者在AndroidManifest.xml中指定能接收到的广播类型如在代码中指定:IntentFilter filter=new IntentFilter("org.crazyit.原创 2017-06-13 22:23:46 · 768 阅读 · 0 评论 -
安卓中的有序与无序广播
1.Normal Broadcast(普通广播):完全异步,同一时刻所有接收者都能收到,缺点是不能将处理结果传递给下一个接收者,无法终止Broadcast Intent的传播。用sendBroadcast()方法发生普通广播2.Ordered Broadcast(有序广播):接收者按预先声明的优先级依次接收Broadcast,优先级高的先接收,可以用android:priority或setPr原创 2017-06-13 22:43:25 · 336 阅读 · 0 评论 -
安卓OkHttp的用法
1.先加入OkHttp库的依赖:dependencies { compile 'com.squareup.okhttp3:okhttp:3.8.1'}2.创建一个OkHttpClient的实例,OkHttpClient client =newOkHttpClient();3.如要发送一条http请求,则创建一个Request对象并加入相应的内容Requ原创 2017-07-15 11:21:42 · 1260 阅读 · 0 评论 -
安卓百分百布局的使用
在这种布局我们可以不再使用wrap_content、match_parent等方式来制定控件的大小,而是直接运行控件在布局中所占的百分比,这样的话就可以轻松实现平方布局甚至是任意比例分割布局的效果了。由于LinearLayout本身已经支持按比例指定控件的大小,因此百分百布局只是为FragLayout和RelativeLayout进行了功能扩展,提供了PercentFrameLayout和Pe原创 2017-06-14 22:40:52 · 733 阅读 · 0 评论 -
Material Design之ToolBar
1.ToolBar:每个活动的最顶部标题栏就是ActionBar,现在很少用ActionBar了,ToolBar继承自ActionBar,可以配合其他控件来完成Material Design的效果。新建的一个项目默认都是显示ActionBar,而这个ActionBar是来自于主题中,我们不断地在AndroidManifeast.xml中追查theme属性即可找到Theme.AppC原创 2017-07-15 16:35:19 · 226 阅读 · 0 评论 -
Material Design之悬浮按钮和可交互提示
1.FloatingActionButton:即为悬浮按钮,它默认用colorAccent作为按钮的颜色,我们可以给按钮指定一个图标来说明这个按钮的作用,在activity_main.xml中:android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_w原创 2017-07-15 21:06:39 · 428 阅读 · 0 评论 -
Material Design之卡片式布局
1.CardView是用于实现卡片式布局的重要控件,实际上为一个FrameLayout,只是提供额外的圆角和阴影效果。用法如下:android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:la原创 2017-07-16 16:11:04 · 1108 阅读 · 0 评论 -
Material Design之下拉刷新
SwipeRefreshLayout就是用于实现下拉刷新功能的核心类,我们把想要实现下拉刷新功能的控件放到SwipeRefreshLayout中就可以迅速让这个控件支持下拉刷新,这个控件通常为RecyclerView。1.修改activity_maina.xml如下:xml version="1.0" encoding="utf-8"?>android.support.v4.wi原创 2017-07-16 16:28:58 · 445 阅读 · 0 评论 -
Material Design之可折叠标题栏
1.CollapsingToolBarLayout它是一个作用于ToolBar基础之上的布局,可以让ToolBar更丰富,不仅仅是展示一个标题栏,而是能够实现非常华丽的效果。但是CollapsingToolBarLayout不能单独存在,它必须作为AppBarLayout的直接子布局来使用,而AppBarLayout又是CoordinatorLayout的子布局。1.1首先新建一个布局ac原创 2017-07-16 18:08:22 · 1419 阅读 · 0 评论 -
安卓中RecyclerView的使用
1.创建一个主布局文件,里面只有FrameLayout,用于放置所要托管的活动:activity_main.xml:xml version="1.0" encoding="utf-8"?>FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragmentCon原创 2017-05-02 16:39:41 · 3024 阅读 · 0 评论 -
android中Surface View的用法
SurfaceView与普通的View的区别就是View视图必须在当前UI线程中进行,这也是在更新View组件时总要采用Handler处理的原因;但SurfeceView不会存在这个问题,它的绘图是由SurfaceHolder来完成的,SurfaceHolder会启动新的线程去更新SurfaceView的绘制,不会阻塞主UI线程。一般而言,如果程序中或游戏界面中的动画元素较多,而且很多动画元素都需原创 2017-04-17 23:29:01 · 1615 阅读 · 0 评论 -
Activity Intent相关FLAG介绍
先首先简单介绍下Task和Activity的关系Task就像一个容器,而Activity就相当与填充这个容器的东西,第一个东西(Activity)则会处于最下面,最后添加的东西(Activity)则会在最上面。从Task中取出东西(Activity)是从最顶端取出,也就是说最先取出的是最后添加的东西(Activity),以此类推,最后取出的是第一次添加的Activity,而Ac转载 2016-09-01 01:08:13 · 160 阅读 · 0 评论 -
安卓中一个字符串str1是否包含在另一个str2中,判断一个字符串是否为电话号码格式
public bool isMatch(String str1, String str2){ /* ��k�@ */ String strPattern = "(?i)"+str1; Pattern p = Pattern.compile(str2); Matcher m = p.matcher(small); return m.find();}原创 2016-08-31 23:58:28 · 974 阅读 · 0 评论 -
Android开发中Handler的经典总结
一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI。解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者转载 2016-09-01 01:19:24 · 131 阅读 · 0 评论 -
安卓中的定期更新UI组件
我们在很多时候都要去定期地更新UI组件,而这个可以用到java里面的Timer类,然后调用它的schedule方法,之后再新建一个TimerTask类,在里面设置将要做的动作。具体如下:public class MainActivity extends Activity{private TextView mTextview;Handler handler = new Handler转载 2017-03-04 08:49:13 · 218 阅读 · 0 评论 -
android shape.xml 属性详解
源码地址:http://download.csdn.net/detail/harvic880925/8249629请大家尊重原创者版权,转载请标时出处:http://blog.csdn.net/harvic880925/article/details/41850723 谢谢。一、简单使用刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用。1、新建shape转载 2017-03-04 18:20:30 · 169 阅读 · 0 评论 -
使用ArrayAdapter结合LisiView自定义一个列表
1.首先,我们要创建一个类来保存我们要显示在ListView上面的数据。下面定义了一个含有一个名字和一个资源ID的类MainItem.java: public class MainItem { private String name; private int imageId; public MainItem(String name, int imag原创 2017-03-08 18:34:25 · 315 阅读 · 0 评论 -
结合动态更新ProgressBar进度
public class MainActivity extends Activity{ int hasData = 0; // 记录ProgressBar的完成进度 int status = 0; ProgressBar bar , bar2; // 创建一个负责更新的进度的Handler Handler mHandler = new Handler() { @Override原创 2017-03-09 20:53:53 · 1499 阅读 · 0 评论 -
安卓中的Date里面提取年、月、日
Date是个时间截,无法直接提供整型形式的年、月、日,要提取的话必须创建一个Calendar对象,用Date去配置它,再从Calendar中取得相应信息:Date date=getDate();//getDate()是一个取得Date对象的函数Calendar calendar=Calendar.getInstance(); calendar.setTime(date); i原创 2017-03-28 16:39:38 · 8400 阅读 · 0 评论 -
安卓常用技巧
1.去掉窗口标题requestWindowFeature(Window.FEATURE_NO_TITLE);2.全屏显示etWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);3.获取屏幕的宽和高 //原创 2017-03-21 16:34:45 · 144 阅读 · 0 评论 -
安卓用代码生成控件的方法
一般控件:private TextView getTextView(){ AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 64); TextView textView = new TextView(MainActi原创 2017-03-30 21:44:46 · 515 阅读 · 0 评论 -
android中返回一个View的两种方法
在安卓开发中我们经常需要去返回一个View视图,下面有两种方法(返回一个ImageView视图):1.加载布局文件来返回View:布局文件:imageview.xmlImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleT原创 2017-03-14 20:39:53 · 1492 阅读 · 0 评论 -
安卓中PerfenenceActivity的运用
很多时候我们要在应用程序中进行类似于系统设置这样的操作来对程序进行个性化的设置,这个时候就可以用PerferenceActivity进行,它可以将设置的结果保存,即便下次就进入应用程序也是如此:原创 2017-03-31 17:13:29 · 403 阅读 · 0 评论 -
安卓自定义一个ListView
主布局文件:只有一个listview,用于显示所有的listxml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"原创 2017-03-18 19:56:58 · 257 阅读 · 0 评论 -
安卓里面的活动的加载模式
1.standard:默认的,总会启动一个新的实例,并将其放在当前Task栈中,不会启动新的Task,新活动放入原有的栈中2.singleTop:当要启动的Activity已经位于Task栈顶,系统不会创建目标Activity的实例,而是直接复用已有的Activity实例。当没有位于Task栈顶时,它与standard一样3.singleTask:如果将要启动的目标Activity不存在,原创 2017-04-02 21:12:47 · 334 阅读 · 0 评论 -
如何控制android中ImageView的位置
因为ImageVIew的setFrame()方法不可以直接调用,只能以下面的方式来间接调用基本都是采用继承ImageView,并提供setLocation方法,其实质是调用ImageView没有开放的setFrame方法来设置位置。通常写法如下:class MyView extends ImageView{public MyView(Context context,float x,float原创 2017-04-17 20:28:22 · 8474 阅读 · 1 评论 -
Material Design之滑动菜单
1.DrawerLayout:它是一个布局,在布局中允许放入两个直接子控件,第一个子控件是主屏幕中显示的内容,第二个是滑动菜单中显示的内容,activity_main.xml如下:xml version="1.0" encoding="utf-8"?>android.support.v4.widget.DrawerLayout xmlns:android="http://sc原创 2017-07-15 17:27:09 · 352 阅读 · 0 评论