自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 layout_marginTop="-3dp"导致内容被遮挡的问题处理

问题描述:需要将未读消息提示显示在图片的右上角(高出图片),但是却出现消息提示被遮挡的现象。如下所示: <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"

2015-10-30 17:22:15 3768

转载 Android中自定义组件及自定义属性

有时候在做开发的时候,android提供给我们的视图并不能满足我们的要求,所以有时候我们需要自己创建自己的view。我们只需要将我们想要的继承于View,然后重写里面的方法就可以了。[java] view plaincopypackage com.example.view;    import android.content.Context;  import

2015-10-30 14:59:25 342

转载 说说Android 两种为自定义组件添加属性的使用方法和区别

Android 自定义View 己经不是什么新鲜话题,Android Api提供了一大堆基础组件给我们,需要什么特定功能还需要我们继承它们然后定制更加丰富的功能。前面有篇文章也说过为自定义VIEW添加属性,但只是一笔带过,这里就拿这点来说说吧。第一种添加属性的方法,之前我也是经常使用这种写法,代码如下: package com.terry.attrs;import andr

2015-10-30 14:55:50 361

转载 Android 自定义属性用法详解

最近项目中经常需要用到自定义控件,因此自定义属性也是经常要用到的,在此说明一下自定义属性的用法:自定义属性都存在于/value/attr.xml文件中,以如下格式存在。                        format="属性种类"/>                ......            对于自定义属性中的format的值及其含义如下:

2015-10-30 14:38:28 375

转载 关于android长连接及休眠唤醒的几篇文章

极光推送技术原理:无线网络长连接 移动互联网应用现状因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个

2015-10-29 16:08:39 3833

转载 如何让android设备进入休眠时保持网络不断开?

android设备在屏幕关掉之后一段时间会进入睡眠状态,这个时候cpu进入休眠,网络也会中断;如何让其在进入休眠之后依然保持网络连接?// 电源管理PowerManager pm = (PowerManager) TalkMessageServer.this.getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock

2015-10-29 14:50:39 4754

转载 android即时消息处理机制

在android端做即时消息的时候,遇到的坑点是怎么保证消息即时性,又不耗电。为什么这么说呢?原因是如果要保证消息即时性,通常有两种机制pull或者push。pull定时轮询机制,比较浪费服务器资源;push服务器推送机制,需要保持长连接,客户端和服务器都要求比较高(网络环境,服务器保持连接数等),它们的详细优缺点不描述了。上面这两种机制都要求客户端长期处于活动状态,前提是cpu处于唤醒状态,

2015-10-29 14:25:28 416

转载 Android服务开发经验——优雅地活着(唤醒)

大多数的Android应用开发都会将注意力集中在界面功能上,只有少数应用会需要一个Service,尤其是一个长期运行的Service,去进行后台联网、环境检测、媒体播放等功能。Android环境下的Service有其自身的特点,为了让服务完美地实现预想的功能,首先要解决的一个重要问题就是:如何让你的服务优雅地活着。(太文艺了,请讲人话~~)    具体来说,就是要做到两点:    1.尽可

2015-10-29 14:09:44 2088

转载 AlarmManager, WakeLock and IntentService

在Android开发中,我们经常会用到AlarmManager来做一些类似于Linux cron job的工作。我们以下面的代码为例来说明整个流程: 123456AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

2015-10-29 13:43:58 529

转载 使用WakeLock使Android应用程序保持后台唤醒

在使用一些产品列如微信、QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息来临了。但是,一般情况下手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间后会使系统进入休眠状态,这时,Android系统中CPU会保持在一个相对较低的功耗状态。针对前面的例子,收到新消息必定有网络请求,而网络请求是消耗CPU的操作,那么如何在锁屏状态乃至系统进

2015-10-29 13:37:45 463

转载 Android AlarmManager实现不间断轮询服务

在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了。但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一次,那用轮询也是一个不错的选择,因为不需要额外搭建推送服务器,不用额外配置推送服务。另外推送现在一般以维持长连接的方式实现,在手机客户端也会耗费一定的电量。今天就介绍一个在Android上实现轮询机制

2015-10-29 13:34:42 690 1

转载 安卓系统耗电太快?针对wakelock(唤醒锁)的设置优化教程

导读: android为了确保应用程序的正确执行,提供了wakelock(唤醒锁)的api,wakelock是一种锁的机制,只要有应用拿着这个锁,系统就无法进入休眠,手机耗电的问题,其实大部分是这个锁正不正常的问题。手机上应用程序的耗电,本质上是它所启用的硬件在消耗电量。android手机有两个处理器,即application processor(ap,应用处理器)和baseband proc

2015-10-29 11:33:06 24450 4

转载 Android中的定时器AlarmManager

在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService。AlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,常用方法有五个:(1)set(int type,long startTi

2015-10-28 10:12:47 436

原创 No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/tx_search_friend

错误提示:error: Error: No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/tx_search_friend').解决方法:将android:layout_toLeftOf="@id/tx_search_friend"改为:

2015-10-27 16:02:14 3881 1

原创 PopupWindow如何右对齐

PopupWindow showAsDropDown默认是左上对齐的,可以获取屏幕宽度,然后再进行X偏移。// ViewGroup.LayoutParams topBarPara= (ViewGroup.LayoutParams)topBar.getLayoutParams();// int xoff=topBarPar

2015-10-26 17:16:42 2676

转载 Android 编程下 PopupWindow 窗口的弹出

PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,PopupWindow 弹出的位置是能够改变的,按照有无偏移量,可以分为无偏移和有偏移两种;按照参照对象的不同又可以分为两种:相对某个控件(Anchor 锚点)的位置和在父容器内部的相对位置。PopupWindow 的实现效果如下:PopupWindow 的实现代码如下:创建 PopupWindow

2015-10-26 14:55:55 456

原创 动态调整ImageView的尺寸(width 、height

在布局文件中设置高和宽为50dp。 <ImageView android:id="@+id/right_btn" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity=

2015-10-26 13:52:49 2102

原创 android.app.ActionBar $LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams

错误提示:android.app.ActionBar $LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams修改方法:将原来import的LayoutParams库android.app.ActionBar $LayoutParams删除,将android.widget.Fr

2015-10-26 11:26:18 602

原创 linearlayout 设置layout_marginRight居右不能生效的解决方法

问题:android:layout_marginRight="5dp"无效,而设置android:layout_marginLeft="55dp"却可以生效。解决方法:                    android:layout_gravity="right"                    android:layout_marginRight="5dp"

2015-10-23 10:21:31 3752 1

转载 android LayoutInflater.inflate()的参数介绍

LayoutInflater大家都用很久了,但是有时候有些小问题比如inflate出来的view属性没有生效等等都困扰着大家;又比如在自定义的adapter里面inflate的布局文件高度没办法设定等等,参考了一些文章和文档,这里做一些笔记,希望大家都能补充。 LayoutInflater.inflate()的作用就是将一个xml定义的布局文件实例化为view控件对象。 与find

2015-10-22 13:46:35 357

转载 Inflater与findViewById()区别

Inflater与findViewById()区别/**             * Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。 LayoutInflater的作用类似于             * findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化! 而    

2015-10-22 11:44:35 319

转载 LayoutInflater的inflate函数用法详解

LayoutInflater作用是将layout的xml布局文件实例化为View类对象。获取LayoutInflater的方法有如下三种:?LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

2015-10-22 11:43:19 379

转载 Fragment和Activity

Fragment和Activity的交互  一个Fragment的实例总是和包含它的Activity直接相关。  fragment可以通过getActivity() 方法来获得Activity的实例,然后就可以调用一些例如findViewById()之类的方法。  如:  View listView =getActivity().findViewById(R.id.list

2015-10-21 14:17:41 349

转载 EventBus使用

EventBus使用在介绍EventBus之前先捋顺以下Android自带的应用内通信方式有哪些?Android 应用内常用通信方式1.使用handler进行线程间通信handler是和Thread绑定的,主线程中创建Hander直接通过new Handler() 来创建即可。自定义线程中则还需要调用Looper.prepare Looper.loop来让Handler起作用,这里

2015-10-20 18:05:20 599

原创 java.util.IllegalFormatConversionException: %d can't format com.mogujie.tt.protobuf.IMBaseDefine$Re

10-20 15:30:39.444: E/MoGuLogger(19145): 2015-10-20 15:30:39:449 - [MsgServerHandler.java:68] - 2053 - channel#[网络异常了]exceptionCaught e.toString:[id: 0xd0c2ae80, /192.168.100.20:47249=> /61.145.

2015-10-20 17:03:45 2392

原创 Eclipse导入项目中文乱码

项目右键 properties,修改编码。

2015-10-19 13:19:05 346

转载 Activity的生命周期,BACK键和HOME键生命周期

Activity的生命周期模型在Google提供的官方文档上有比较详细的一个图示 public class HelloActivity extends Activity { public static final String TAG = "HelloActivity"; /** * 第一个被运行的方法 * 初始化页面 * Bun

2015-10-19 13:16:58 416

原创 如何安装离线下载的SDK包

将下载的包解压后,找到如下红圈内的文件夹,复制。将上面的文件夹拷贝到ECLIPS的如下目录下,重启ECLIPSE即可。

2015-10-15 10:01:36 613

转载 Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse

经常打开别人的工程,发现layout里面使用了一些第三方的自定义控件,Graphical Layout标签里是无法预览页面的,抛出一些异常,上图吧:对于提示Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse。或者直接抛出的java.lang.Null

2015-10-15 09:38:04 619

转载 netty服务器,客户端的开发

1.netty是一种网络传输框架,是对NIO的一个封装,一般用于游戏开发,与此相媲美的是MINA。作者都是同一个人。2.netty的简单原理从上图可以很清晰的看到客户端要与服务通信,必须要一个通道与一个端口才能使其相互通信,boos线程池接收数据分配任务给work线程池进行处理业务逻辑3.客户端与服务器的通道的粘包与拆包的解决方案,什么是粘包:

2015-10-13 16:03:41 571

转载 EventBus使用之基础

开源项目链接EventBus项目:https://github.com/greenrobot/EventBusEventBusDemo下载:https://github.com/yanbober/Android-Blog-Source/tree/master/Android-EventBus-Demo背景介绍如果你学习过设计模式,那么当想通知其他组件某些事情发生时你一定会使用观察者

2015-10-13 11:19:03 437

原创 The following classes could not be found - EditText (Change to android.widget.EditText, Fix Build Pa

tv是在l里面了, wear单独拉了个4.4w出来。错误原因:API等级 API 20:Android 4.4w,这是Android官网发布的可穿戴设备的API,它是不支持EditText组件的;解决方案:在bulid.gradle里面将API版本改成19即可。 Android L       (API20,L preview)   里面有TV,开发电视。Android

2015-10-12 16:10:41 1719

转载 eclipse最有用快捷键整理

编辑Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)Ctrl+Shift+F 格式化当前代码Ctrl+Shift+M 添加类的import导入Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)Ctrl+Y 重做(与撤销Ctrl+Z相反)

2015-10-12 11:23:37 399

接口测试-Charles

接口测试-Charles 1、安装charles_setup.exe 2、将patcher.jar复制到charles安装目录并打开 3、点击browse选择charles安装目录下的lib目录的charles.jar

2014-01-20

空空如也

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

TA关注的人

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