- 博客(23)
- 收藏
- 关注
原创 判断并监测网络连接状态
判断当前是否有网络连接ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo activeNetwork = cm.getActiveNetworkInfo();boolean isConnected = acti
2017-07-04 16:57:46
1114
原创 提升Layout的性能
优化layout的层级一个常见的误区是,用最基础的 Layout 结构可以提高 Layout 的 性能。然而,因为程序的每个组件和 Layout 都需要经过初始化、布局和绘制的过程,如果布局嵌套导致层级过深,上面的初始化,布局和绘制操作就更加耗时。例如,使用嵌套的 LinearLayout 可能会使得 View 的层级结构过深,此外,嵌套使用了 layout_weight 参数的 LinearLa
2017-07-04 15:12:36
534
原创 Android 代码性能优化建议
避免创建不必要的对象创建对象从来不是免费的。Generational GC可以使临时对象的分配变得廉价一些,但是执行分配内存总是比不执行分配操作更昂贵。随着你在App中分配更多的对象,你可能需要强制gc,而gc操作会给用户体验带来一点点卡顿。虽然从Android 2.3开始,引入了并发gc,它可以帮助你显著提升gc的效率,减轻卡顿,但毕竟不必要的内存分配操作还是应该尽量避免。如果你需要返回一个
2017-07-04 11:07:56
189
原创 Android 如何管理内存
珍惜Services资源如果你的应用需要在后台使用service,除非它被触发并执行一个任务,否则其他时候service都应该是停止状态。另外需要注意当这个service完成任务之后因为停止service失败而引起的内存泄漏。当你启动一个service,系统会倾向为了保留这个service而一直保留service所在的进程。这使得进程的运行代价很高,因为系统没有办法把service所占用的RAM
2017-07-04 10:31:57
241
原创 listview addheadview() 遇到的问题
listview addheadview(gridview)时,gridview的item不相应点击事件,然后我把gridview换成了recyclerview,就响应了点击事件,因为比较急,具体的问题没深究,但可能是listview外面嵌套了刷新控件PtrClassicFrameLayout的缘故。
2017-06-23 11:34:02
256
原创 Android四大基本组件
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。Activity 概念: 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。<activity Android:name=".ExampleActivity" android
2017-06-07 16:26:47
348
原创 关于fragment嵌套fragment,第一次能加载布局,第二次不能加载布局的问题
关于fragment嵌套fragment,第一次能加载布局,第二次不能加载布局的问题如果是activity嵌套fragment,adapter用 MyPagerAdapter extends FragmentStatePagerAdapter 就行如果是fragment枪套fragment,adapter用FragmentAdapter extends FragmentPagerAdapter
2017-05-16 20:15:57
356
原创 Android 时间相关的转换
date转String public static String dateToString(Date date) { //日期格式化(括号内是自己想要的日期格式) SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); return format.format(date);
2017-04-06 16:13:49
202
原创 Android执行网络操作
检查网络连接 /** * 检测网络是否连接 * * @param context * @return true : 网络连接成功 * @return false : 网络连接失败 */ public static boolean isNetworkAvailable(Context context) {
2017-03-27 16:09:32
408
转载 Android 权限
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 androi
2017-03-24 17:11:37
159
原创 关于Intent
建立隐式的IntentImplicit intents并不声明要启动组件的具体类名,而是声明一个需要执行的action。这个action指定了我们想做的事情,例如查看,编辑,发送或者是获取一些东西。Intents通常会在发送action的同时附带一些数据,例如你想要查看的地址或者是你想要发送的邮件信息。数据的具体类型取决于我们想要创建的Intent,比如Uri或其他规定的数据类型,或者甚至也可能根
2017-03-24 15:06:15
161
原创 自定义dialog
布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" a
2017-03-24 10:02:06
155
原创 自定义ratingbar
布局 <RatingBar android:id="@+id/rating_bar" style="@style/RatingBarSmall" android:layout_width="wrap_content" android:lay
2017-03-23 18:33:23
372
原创 Android 自定义背景系列
shape和selector和layer-list单独用shape的情况:给图片设置圆角等一些属性的时候。(图片)<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--
2017-03-23 18:09:47
490
原创 popupwindow 底部弹出+背景半透明
首先是布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/popup_linear" android:layout_width="match_parent" andr
2017-03-23 15:58:25
1537
转载 Android动画效果translate、scale、alpha、rotate
动画类型Android的animation由四种类型组成XML中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中AlphaAnimation渐变透明度动画效果
2017-03-22 17:32:54
170
原创 Android 动画
渐变动画淡入淡出(显示隐藏时可用) private TextView mContentView; private Button mLoadingView; private Button mChangeBtn; private int mShortAnimationDuration; @Override protected void onCreate(Bundle
2017-03-22 17:30:54
151
原创 拍照
简单的拍照相应的权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android
2017-03-17 17:02:58
334
原创 管理音频播放
管理音频播放(1)控制音量与音频播放如果我们的应用可以播放音频,那么显然我们需要做到能够通过硬件按钮,软件按钮,蓝牙耳麦等来控制音量。 同样地,我们需要能够对应用的音频流进行播放(Play),停止(Stop),暂停(Pause),跳过(Skip),以及回放(Previous)等动作,并且并确保其正确性。鉴别使用的是哪个音频流为了创建一个良好的音频体验,我们首先需要知道应用会使用到哪些音频流。A
2017-03-17 11:21:48
710
原创 数据保存
保存到PreferenceSharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进行读取和存入。当有一个相对较小的key-value集合需要保存时,可以使用SharedPreferences APIs。 SharedPreferences 对象指向一个保存key-
2017-03-16 16:35:51
540
原创 关于Fragment
可以把 Fragment 想象成 Activity 的模块,它拥有自己的生命周期、接收输入事件,可以在 Acvitity 运行过程中添加或者移除。创建 Fragment 时,必须重写 onCreateView() 回调方法来定义布局。Activity中如果用到Fragment 应该继承自 FragmentActivity ,也可以继承AppCompatActivity,AppCompatActi
2017-03-16 14:32:58
183
转载 封装
三大特性之---封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(
2017-03-09 14:41:34
194
原创 Android activity 生命周期总结
Activity生命周期的七个方法void onCreate(Bundle savedInstanceState) // Activity创建时void onStart() // activity对用户可见时void onRestart() // activity从onStop状态唤醒时void onResume() // activity获取焦点时void onPause()
2017-03-07 21:29:42
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人