自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

原创 181.n1-聊天机器人

聊天机器人,分为2个部分,第一个部分是上面的主体部分是聊天的部分。主布局文件activity_main.xmxl<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layo

2017-05-30 08:58:43 381

原创 180.n1-科大讯飞语音识别

可以参考科大讯飞官网的文件MSC Develop Manual for Android.pdf,参考其文件中的代码:第一步:打入sdk,将开发包libs下面的文件夹拷贝到工程的lib下面的目录中第二布:添加权限 第三步:初始化,初始化即 创建 语音配置对象

2017-05-30 04:07:09 714

原创 屏幕适配

## 屏幕适配 ##> 主流屏幕: 1280*720, 遵循原则: 不用AbsoluteLayout(绝对布局), 多用相对布局&线性布局(权重), 要用dp,不用px> 开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果没出现太大问题(影响正常使用), 就可以上线> 如果后期测出问题怎么办?- 图片适配根据图片的分辨率,放在不同的drawab

2017-05-27 02:09:25 335

原创 179.n1-极光推送

官网地址https://www.jiguang.cn/push## 推送原理 ##- xmpp 是一种基于TCP/IP的协议, 这种协议更适合消息发送- socket 套接字, 发送和接收网络请求- 长连接 keep-alive, 服务器基于长连接找到设备,发送消息- 心跳包 , 客户端会定时(30秒一次)向服务器发送一段极短的数据,作为心跳包, 服务器定时收到心跳,证明客

2017-05-25 02:30:21 341

转载 内存溢出

一、Android的内存机制android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。在java中,通过new为对象分配内存,所有对象在java堆内分配空间;而内存的释放是由垃圾收集器(GC)来回收的。 Java采用了有向图的原理。Java将引用关系考虑为图的有向边,有向边从引用者指向引用对象。线程对象可以作为有向图的起始顶点,该图就

2017-05-25 00:38:44 583

原创 178.n1-三级缓存,使用自定义MyBitmapUtils,不使用xUtils的BitmapUtils加载图片

三级缓存机制:内存缓存:优先加载,速度快,内存缓存中android给每一个app分配16m的内存。java中的引用是强引用,垃圾回收器不会回收。java中的引用默认都是强引用。软引用(SoftReference):java的垃圾回收机制会回收,内存不够的时候,垃圾回收器会考虑回收;弱引用(weakReference)在内存不够的时候,垃圾回收器会优先回收,虚引用(PhantomRefence)...

2017-05-25 00:13:23 834

原创 177.n1-组图

组图有2种形式,一种是以listView的形式实现一种是以GridView的方式显示,两种显示方法是通过一种显示的时候另一种隐藏来实现切换的.按钮实在BsePager中进行设置的,一开始是不可见,当menu在组图处点击的时候显示切换按钮,由于组图切换的按钮是在基类中定义的,为了获取到按钮的对象,需要在NewsCenterPager.java中创建组图pager的时候在参数中带上mPagers.ad

2017-05-23 02:24:58 578

原创 177.n1-banner的监听

banner的监听只需要添加点击事件//监听image的点击事件 image.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()){ case M

2017-05-23 00:19:28 1227

原创 176.n1-banner图的自动切换

banner切换通过handlerMessage轮询器发消息,来更新item来实现,在handlerMessage中发送延时消息实现banner的循环播放TabDetailPager.javapackage com.ldw.beijing.base;import java.util.ArrayList;import android.app.Activity;import an

2017-05-22 03:35:33 517

原创 175.n1-缓存

缓存使用key-value的形式,key是json的url,value是json的内容。将缓存保存在SharedPreference中,也可以把缓存保存在文件中,文件名就是url(MD5的形式),文件的内容是json创建一个工具,将内容保存在SharedPreference中package com.ldw.beijing.utils;import android.content.Con

2017-05-22 03:06:36 267

原创 174.n1-使用shareSDK实现分享

在使用shareSDK之前需要先在控制台注册需要使用这个SDK的apk的相关信息参考文档;http://wiki.mob.com/sdk-share-android-3-0-0/http://bbs.mob.com/forum.php?mod=viewthread&amp;tid=8212&amp;extra=page%3D11.在官网上添加应用,再输入应用的名称例如crossfire...

2017-05-22 02:08:50 1166

原创 173.n-1webview的使用字体切换

webview字体切换使用到了WebSettings settings = mWebView.getSettings();来设置webview的字体package com.ldw.news;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;

2017-05-21 23:40:19 437

原创 172.n1-使用sharedpreference将读取的新闻标记为灰色

在详情页TabDetailPager设置点击的条目的文本变灰色,使用lv_list增加点击监听setOnItemClickListener,由于需要增加header和banner因此,真正的listView需要-2才能是真正的位置,因此在RefreshListView中重写setOnItemClickListener方法,返回的position-2RefreshListView.java

2017-05-21 02:04:39 654

原创 171.n1-下拉刷新和加载更多

下拉刷新是利用下拉的时候根据下拉布局的padding来判断当前的状态,然后再加载数据,再隐藏相应的条目。加载更多是在尾部添加一个布局,然后隐藏布局,当滑动到最后一个ListView的时候会拉出来,然后加载数据,加载数据的时候和之前的加载数据不一样,需要在ArrayList中添加上需要加载更多的数据,这是因为如果不添加,初始化的诗句只会是新添加的数据,之前的数据会没有下面的代码是新修改的,以前的...

2017-05-19 02:57:03 470

原创 170.n1-新闻详情listView展示新闻

滑动listView背景变黑的时候使用android:cacheColorHint="#ffffff"这个设置样式为白色,ListView白和banner分别占用空间,如果需要其组合在一起可以先设置LIstView然后在使用addHearView再将banner添加到头部即可一起滑动新闻的单个条目item_list_view.xml<RelativeLayout xmlns:androi

2017-05-18 01:29:12 457

原创 169.n1-banner下方的标题和使用ViewPagerIndicator实现圆点

下方的标题使用TextView显示,监听滑动事件,当页面被选中的时候,加载相应的title,圆点是使用ViewPagerIndicator实现,tab_detail_pager.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.

2017-05-17 23:59:02 584

原创 168.n1-事件处理

ViewPager和Indicator绑定的时候,滑动监听要设置给Indicator详情页,tab下面的详情页和子页面banner是相互抵触的,banner需要处理滑动,父页面在位置0处需要拉出菜单栏,这样产生了矛盾,因此需要进行详细的处理,在banner和其父亲的非banner处分别处理NewsMenuDetailPager.java详情页滑动的处理 package com.l...

2017-05-17 01:53:27 371

原创 167.n1-详情页的banner图

详情页的banner图同样是使用ViewPager操作的,因为父类也有ViewPager因此需要对让父类的不进行拦截,在布局中继承父类的对象,关于数据的读取是从服务器中读取的,加载资源数据,获取数据来填充ViewPagertab详情页布局tab_detail_pager.xml.上面的部分是banner图,下面的是listView新闻列表<LinearLayout xmlns:andro

2017-05-16 02:44:38 643

原创 166.n1-事件分发,让父类不要拦截

ViewPagerIndicator中父类不拦截TabPageIndicator.java中让父类的不处理请求 /** * 事件分发, 请求父控件及祖宗控件不要拦截事件 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { getParent().requestDisallowInterc

2017-05-15 02:36:08 1038

原创 165.n1-viewIndicator实现tab

ViewPagerIndicator库的使用ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面1. 引入ViewPagerIndicator库2. 编写布局文件&lt;com.viewpagerindicator.TabPageIndicator andr...

2017-05-15 01:56:51 363

原创 164.n1-菜单详情页的tab的初始化(网络取数据)

详情页的tab是由ViewPager来实现切换的布局news_menu_details.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_pa

2017-05-14 17:48:41 355

原创 163.n1-菜单栏与内容的交互

菜单栏与内容的交互涉及到通过MainActivity获取到相应的对象或者数据。主要的逻辑如下MainActivity.java左边的菜单和右边模块的交互package com.ldw.news;import android.os.Bundle;import android.support.v4.app.FragmentManager;import android.support.v

2017-05-14 03:17:22 604

原创 162.n1-左侧边栏数据的初始化

ViewPager和左侧边栏数据的交互,然后通过lIstView实现左侧边栏,下面主要是实现获取到ViewPager的数据,然后监听左边菜单的点击事件,实现对左边的监听去掉listView的分割线android:dividerHeight="0dp"fragment_left_menu.xml左侧边栏的ListView布局<LinearLayout xmlns:android

2017-05-14 01:34:59 317

原创 161.n1-解析json中的数据传递给左边的侧边栏

左侧边栏和ViewPager中的额news没有什么交互,如果要传递数据可以通过MainActivity作为中介来传递数据,首先MainActivity要获取到左侧边栏的对象, //获取到左侧边栏的对象,娶一个别名 public LeftMenuFragment getLeftMenuFragment(){ FragmentManager fm = getSupportFragmentMa

2017-05-13 01:48:14 874 1

原创 160.n1-解析json中的数据

把json的文件放在服务器中,然后创建一个全局的类方便读取,使用xUtils方便访问网络数据,同时使用Gjson来帮助解析Json数据服务器的路径数据ClobalContants.javapackage com.ldw.news.global;/* * 定义一个全局的参数 */public class ClobalContants { //json文件的tomcat路径,10

2017-05-13 01:12:46 458

原创 159.n1-点击RadioGroup切换ViewPager

ViewPager有滑动的功能,因为需要实现的是点击切换,因此需要吧ViewPager的滑动频闭。初始化每一个按钮对应的ViewPager的时候,是使用的对RadioGroup的监听,当某一个被选中的时候就设置当前页可以看见,同时初始化页面的数据是对ViewPager的监听,判断当前的页面是否被选中,被选中了就初始化当前页面的数据,还有一点需要注意ViewPager的pager.initData(

2017-05-12 23:32:21 394

原创 158.n1-让viewPager不能滑动

让ViewPager不能滑动,只需要监听滑动事件,不做任何处理,然后在使用ViewPager布局的时候不再是android.support.v4.view.ViewPager而是使用自定义的ViewPager, <android.support.v4.view.NoScrollViewPager android:id="@+id/vp_content"

2017-05-12 22:01:38 260

原创 157.n1-模仿微信下边点击不同的模块切换不同的界面

这种实现一般是通过RadioButton实现下边的点击选项,通过ViewPager实现上边的页面的切换。让button的圈不显示的方法:android:button="@null"android:drawableTop可以在文字的上方设置图片android:drawablePadding文字和图片共设padding需要引入xUtils库实现的步骤:首先布局分

2017-05-12 03:10:05 560

原创 156.n1-fragment创建有侧边栏的MainActivity

侧边栏的内容是固定的,主页的内容是变化的,因此不能通过一个xml实现所有的内容,需要使用fragment分别实现侧边栏和主页的内容。将activity_main.xml设置成FrameLayout,空布局,然后往里面填充Fragment;填同时左侧边栏layout_menu.xml也设置成FrameLayout,空布局,然后往里面填充Fragment.这样可以实现左侧边栏和内容的独立布局。

2017-05-11 00:55:52 495

原创 155.n1-Sliding menu的使用,创建侧边栏

项目与项目之间关联的方法,比如一个项目要使用到另一个项目的方法在需要被调用的项目中:---名称--右键--Properties--Android--勾选Is Library,就这样这个项目创建了Li该项目调用另一个项目的方法的时候:--名称--右键--Properties--Android--Add--显泽需要

2017-05-10 23:33:03 638

原创 154.n1-sharedPreferences实现只进一次导航页

实现比较简单,封装sharedPreferences如下,方便后面使用sharedPreferences。com.ldw.news.utils/PreferencesUtils.javapackage com.ldw.news.utils;import android.content.Context;import android.content.SharedPreferences;

2017-05-10 22:29:58 435

原创 153.n1-导航页下方移动的小圆点

导航页下方有3个小灰点,一个红色的点,灰色的点的位置是固定的,红色的点的位置会随着页面的移动而移动,在页面布局中使用shape初始化红点和灰点,灰点的布局是线性的horizontal的布局,红点是覆盖在灰点上方的。布局的时候创建一个RelativeLayout,然后在其中实现3个灰色点的线性布局和一个红色点的View视图布局。这样红点默认是覆盖在灰点上方的。之后监听Viewpager的滑动改变红色

2017-05-10 02:19:16 763

原创 安卓视图树

安卓的视图树:SDK对它的描述是:viewgroup是一个包含其他视图的特殊视图,他是layout布局和视图view等容器的基类。    也就是说viewgroup本身是一个抽象类,它的子孙类在生成视图时是充当容器的作用,我们可以这样理解,在视图树中,只要不是末端节点,我们都可以把它当成装载其他视图的容器,而这些容器都有一个共同的祖先类:viewgroup。在adt-budle文件夹的sd

2017-05-10 02:09:09 1056

原创 152.n1-使用ViewPager实现引导页

布局中引入ViewPager的方法,直接在ViewPager.class复制全名,然后创建相应的组件就可以使用了<android.support.v4.view.ViewPager android:id="@+id/vp_guide" android:layout_width="match_parent" android:layout_height="

2017-05-09 02:03:58 291

原创 151.n1-splash页面,多种特效叠加

由于标题栏会影响效果,某些页面需要设置没有上面的标题栏,在activity中设置是对某一个activity有效,在application中设置是对所有的activity有效 &lt;application android:allowBackup="true" android:icon="@drawable/ic_launcher" androi...

2017-05-09 01:07:58 408

原创 150.自定义侧面滑动菜单

侧滑菜单通过继承ViewGroup中来实现主布局文件activity_main.xml由2个布局文件组成,一个是侧滑一个是右边的主窗体<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

2017-05-07 03:26:05 441

转载 Android 触摸事件传递机制

Android开发中,经常会遇到触摸事件冲突,比如ViewPager的轮播图跟Fragment的划动事件冲突,或者轮播图跟下拉事件冲突,自定义view的事件处理等,本文章将会详细介绍Activity、View、ViewGroup三者的触摸事件传递机制,传递包括三个阶段:分发、拦截、消费。一.触摸事件的类型触摸事件对应的是 MotionEvent 类,事件类型主要有三种:ACTION_DO...

2017-05-07 03:20:34 529

原创 149.ViewGroup实现策划菜单

使用ViewGroup需要实现onMeasure方法,需要先实现测量才能布局画图1.在ViewGroup中,让自己内容移动有以下几个方法:layout(l,t,r,b);offsetTopAndBottom(offset)和offsetLeftAndRight(offset);scrollTo和scrollBy方法;注意:滚动的并不是viewgroup内容本身,而是它的矩形边框

2017-05-07 00:11:23 275

原创 148.模拟下拉刷新

设置窗体的样式可以直接在Manifist文件中的style中直接设置 android:theme="@style/AppTheme",这是一个全局App的属性,也可以在activity中设置requestWindowFeature(Window.FEATURE_NO_TITLE);设置没有title的窗体样式。下拉的时候出现了下拉刷新的字样,需要为拉出的部分单独设计样式android:indete...

2017-05-06 01:48:43 511

原创 147.泡泡窗实现下拉菜单条

功能描述:点击下拉按钮,显示出所有的条目,有删除和点击功能,点击后将条目显示。注意:泡泡窗默认是没有焦点的。要让泡泡窗获取到焦点。假如listview的item中有Button,ImageButton,CheckBox等会强制获取焦点的view 此时,listview的item无法获取焦点,从而无法被点击 解决方法:给item的根布局增加以下属性 android:descendantFocus

2017-05-03 01:32:15 444

Android高级进阶 顾浩鑫

《Android高级进阶》的主要目的在于给读者一个完整的Android中高级开发者知识图谱

2018-09-26

android stuido从入门到精通

android stuido从入门到精通

2017-07-03

空空如也

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

TA关注的人

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