自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 判断并监测网络连接状态

判断当前是否有网络连接ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo activeNetwork = cm.getActiveNetworkInfo();boolean isConnected = acti

2017-07-04 16:57:46 1106

原创 提升Layout的性能

优化layout的层级一个常见的误区是,用最基础的 Layout 结构可以提高 Layout 的 性能。然而,因为程序的每个组件和 Layout 都需要经过初始化、布局和绘制的过程,如果布局嵌套导致层级过深,上面的初始化,布局和绘制操作就更加耗时。例如,使用嵌套的 LinearLayout 可能会使得 View 的层级结构过深,此外,嵌套使用了 layout_weight 参数的 LinearLa

2017-07-04 15:12:36 528

原创 Android 代码性能优化建议

避免创建不必要的对象创建对象从来不是免费的。Generational GC可以使临时对象的分配变得廉价一些,但是执行分配内存总是比不执行分配操作更昂贵。随着你在App中分配更多的对象,你可能需要强制gc,而gc操作会给用户体验带来一点点卡顿。虽然从Android 2.3开始,引入了并发gc,它可以帮助你显著提升gc的效率,减轻卡顿,但毕竟不必要的内存分配操作还是应该尽量避免。如果你需要返回一个

2017-07-04 11:07:56 185

原创 Android 如何管理内存

珍惜Services资源如果你的应用需要在后台使用service,除非它被触发并执行一个任务,否则其他时候service都应该是停止状态。另外需要注意当这个service完成任务之后因为停止service失败而引起的内存泄漏。当你启动一个service,系统会倾向为了保留这个service而一直保留service所在的进程。这使得进程的运行代价很高,因为系统没有办法把service所占用的RAM

2017-07-04 10:31:57 227

原创 listview addheadview() 遇到的问题

listview addheadview(gridview)时,gridview的item不相应点击事件,然后我把gridview换成了recyclerview,就响应了点击事件,因为比较急,具体的问题没深究,但可能是listview外面嵌套了刷新控件PtrClassicFrameLayout的缘故。

2017-06-23 11:34:02 247

原创 Android四大基本组件

Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。Activity 概念: 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。<activity Android:name=".ExampleActivity" android

2017-06-07 16:26:47 329

原创 关于fragment嵌套fragment,第一次能加载布局,第二次不能加载布局的问题

关于fragment嵌套fragment,第一次能加载布局,第二次不能加载布局的问题如果是activity嵌套fragment,adapter用 MyPagerAdapter extends FragmentStatePagerAdapter 就行如果是fragment枪套fragment,adapter用FragmentAdapter extends FragmentPagerAdapter

2017-05-16 20:15:57 355

原创 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 197

原创 Android执行网络操作

检查网络连接 /** * 检测网络是否连接 * * @param context * @return true : 网络连接成功 * @return false : 网络连接失败 */ public static boolean isNetworkAvailable(Context context) {

2017-03-27 16:09:32 385

转载 Android 权限

访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 androi

2017-03-24 17:11:37 154

原创 关于Intent

建立隐式的IntentImplicit intents并不声明要启动组件的具体类名,而是声明一个需要执行的action。这个action指定了我们想做的事情,例如查看,编辑,发送或者是获取一些东西。Intents通常会在发送action的同时附带一些数据,例如你想要查看的地址或者是你想要发送的邮件信息。数据的具体类型取决于我们想要创建的Intent,比如Uri或其他规定的数据类型,或者甚至也可能根

2017-03-24 15:06:15 160

原创 自定义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 153

原创 自定义ratingbar

布局 <RatingBar android:id="@+id/rating_bar" style="@style/RatingBarSmall" android:layout_width="wrap_content" android:lay

2017-03-23 18:33:23 368

原创 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 467

原创 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 1511

转载 Android动画效果translate、scale、alpha、rotate

动画类型Android的animation由四种类型组成XML中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中AlphaAnimation渐变透明度动画效果

2017-03-22 17:32:54 167

原创 Android 动画

渐变动画淡入淡出(显示隐藏时可用) private TextView mContentView; private Button mLoadingView; private Button mChangeBtn; private int mShortAnimationDuration; @Override protected void onCreate(Bundle

2017-03-22 17:30:54 146

原创 拍照

简单的拍照相应的权限<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 330

原创 管理音频播放

管理音频播放(1)控制音量与音频播放如果我们的应用可以播放音频,那么显然我们需要做到能够通过硬件按钮,软件按钮,蓝牙耳麦等来控制音量。 同样地,我们需要能够对应用的音频流进行播放(Play),停止(Stop),暂停(Pause),跳过(Skip),以及回放(Previous)等动作,并且并确保其正确性。鉴别使用的是哪个音频流为了创建一个良好的音频体验,我们首先需要知道应用会使用到哪些音频流。A

2017-03-17 11:21:48 686

原创 数据保存

保存到PreferenceSharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进行读取和存入。当有一个相对较小的key-value集合需要保存时,可以使用SharedPreferences APIs。 SharedPreferences 对象指向一个保存key-

2017-03-16 16:35:51 532

原创 关于Fragment

可以把 Fragment 想象成 Activity 的模块,它拥有自己的生命周期、接收输入事件,可以在 Acvitity 运行过程中添加或者移除。创建 Fragment 时,必须重写 onCreateView() 回调方法来定义布局。Activity中如果用到Fragment 应该继承自 FragmentActivity ,也可以继承AppCompatActivity,AppCompatActi

2017-03-16 14:32:58 178

转载 封装

三大特性之---封装       封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(

2017-03-09 14:41:34 185

原创 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 366

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除