自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 TV端 RecyclerView长按滑动时焦点乱飞或丢失的问题

   导致这个问题出现的原因是由于RecyclerView加载数据并不是将所有的数据加载出来, 快速滑动的时候需要获取焦点的item并没有加载出来,这就导致焦点交给系统来处理,这样就导致了焦点丢失或乱飞的问题。我看了一下网上的解决思路一般是两种:   出处: http://blog.csdn.net/Zou_pl/article/details/77507376 控制按键速度 重写R...

2018-12-11 13:41:11 5371 6

原创 DocumentsProvider介绍与使用

Android4.4中引入了Storage Access Framework存储访问框架,简称(SAF)。SAF为用户浏览手机中存储的内容提供了方便,这些内容不仅包括文档、图片,视频、音频、下载,而且还包括所有由特定ContentProvider(须具有约定的API)提供的内容. 每一种特定内容都有对应的Document provider, 这些Document provider其实是Docume

2017-07-29 10:09:58 8920

原创 Android gradle SourceSets介绍与使用

java插件引入了一个概念叫做SourceSets,通过修改SourceSets中的属性,可以指定哪些源文件(或文件夹下的源文件)要被编译,哪些源文件要被排除。Gradle就是通过它实现Java项目的布局定义。 SourceSets目录结构是固定的Java的标准项目目录布局android { sourceSets { main { manifest.

2017-05-26 17:16:02 58632 6

原创 Android BT种子文件解析

对种子文件进行解析需要先了解一下种子文件的格式, 然后根据格式进行对应的解析.一. BT种子文件格式这里只是简单的介绍一下, 具体信息可以自行google. BT种子文件使用了一种叫bencoding的编码方法来保存数据。 bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典)字符串: 字符串被如此编码:<字

2017-05-10 16:20:30 13202 2

原创 Android 设置主题的方法

很多应用都提供设置主题的功能, 这里介绍一种设置主题的方法. 这种方法通过设置一个基类Activity来管理主题切换的功能, 然后所有的activity继承它, 并实现其中切换主题的接口, 那么所有的Activity也就具有了主题切换的功能. 效果如下:1.首先创建一个主题设置的工具类Theme, 这里为了简单用了数字来标识主题类型, 实际中可以将主题类型用SharedPreferences来保存.

2017-04-24 17:10:10 1334

原创 android 使用WebView获得加载网页的html代码

在网上查询相关资料, 都是使用相同的方式, 但是使用不起作用, 最终在实验成功的方式如下(方法差不多):mWebView = (WebView) view.findViewById(R.id.webview);mWebView.getSettings().setJavaScriptEnabled(true);mWebView.addJavascriptInterface(new MyJavaSc

2017-02-09 17:29:48 5348

原创 Android RecyclerView item选中放大被遮挡问题

在Android TV上一般选中某个View, 都会有焦点突出放大的效果, 但是当在RecyclerView中(ListView或GridView)实现当item View执行放大动画后会被其他的item View遮挡. 原因是: RecyclerView的机制是越靠后的View z-order越高, 所以bringToFront方法是不管用的.在实现针对TV端的自定义控件 TvRecycler

2017-01-16 19:32:06 9198 2

原创 针对Android TV端使用的自定义RecyclerView

在Android TV中开发, 需要处理焦点的移动, 为了达到醒目的作用一般都会添加焦点移动动画和焦点选中放大效果, 为了方便在TV端使用RecyclerView, 故自定义TvRecyclerView来实现焦点选中与移动的效果.效果如下:一. TvRecyclerView使用 (1) 在布局中添加 TvRecyclerView <app.com.tvrecyclerview.TvRecyc

2017-01-16 17:30:27 10118 6

原创 HorizontalScrollView 滑动流程与在TV端使用horizontalscrollview的问题

在android TV端中实现水平滑动效果可以使用HorizontalScrollView来实现, 现在来介绍一下在TV端使用HorizontalScrollView时遇到的问题.HorizontalScrollView 滑动流程例如现在在TV端实现类似于手机launcher的功能显示所有的应用, 并使用HorizontalScrollView来实现水平滑动, 但是有这样的需求: 当应用滑动到某个子

2017-01-10 13:08:46 3152 2

原创 c++ 常见排序算法汇总

1.快速排序算法 最坏时间复杂度为O(n*n), 这与基数的选择有关, 期望的运行时间为O(nlgn),且O(nlgn)记号中隐含的常数因子很小。另外,它还能够进行就地排序.快速排序逻辑: 1、先从数组中取出一个数作为基数,基数的选择对排序效率的影响很大, 一般随机来选择. 2、分区,将比这个基数小的数全部放到它的左边,比基数大的数全部放到其右边 3、对左右两个区间重复第二步,直到每个区间只

2016-10-20 13:52:02 1751

原创 android Glide 获取磁盘缓存

Glide是Google推荐的图片加载库, 加载图片一般以下面的形式:Glide.with(context).load(ImgUrl) ..asBitmap() .error(R.drawable.error) .placeholder(R.drawable.loading) .dontAnimate() .diskCacheStrateg

2016-10-13 19:18:07 13432 2

原创 android ViewDragHelper介绍与使用

通过 ViewDragHelper 基本可以实现各种不同的滑动需求, 但其使用方法也是复杂的, 这里记录对ViewDragHelper的使用方法.ViewDragHelper的使用步骤:1.初始化ViewDragHelperViewDragHelper 通常定义在一个 ViewGroup的内部,并通过其静态工厂方法进行初始化.mDragHelper = ViewDragHelper.create(t

2016-10-12 13:38:16 631

原创 View只能获得ACTION_DOWN消息, ACTION_MOVE消息接收不到

在实现一个可以滑动的view时, 发现view并不能根据手指的位置滑动, 通过log查看, view只接收到ACTION_DOWN的消息, 没有收到ACTION_MOVE消息.原因: android的消息传递机制是: 有外到内, 处理机制则相反, 由内到外. 那么当view收到ACTION_DOWN没有处理, 那么此消息最终交由父类来处理消费.解决方案: 1.在view中处理ACTION_DOWN

2016-10-12 12:23:06 2319 1

原创 android 音乐播放控件

之前看到网页版的网易音乐播放控件, 正好在一个开源学习项目中需要简单的音乐播放功能。所以想是不是可以封装一个音乐播放控件,提供一个类似网易播放控件的默认界面,而且提供更换界面的功能。使用时,只需要去设计界面, 而不用再去管音乐播放的逻辑,所以就实现了一个简单的音乐播放控件。音乐播放控件(MiniMusicView) 使用方法:1.使用默认的界面(1) 在你的布局中加入 MiniMusicView<c

2016-10-01 13:22:26 5574 2

原创 android 使用反射获取MediaPlayer的Invoke方法

最近有需求需要使用MediaPlayer的invoke接口去实现某些功能, 但是invoke接口是隐藏的, 没有在sdk中开放出来. 所以使用反射的方法来获取invoke接口, 但在实现的过程中出现一些问题, 在这里记录一下.1.使用反射的方式获取隐藏的接口 if (mMediaPlayer != null) { Parcel request = Parcel.

2016-08-29 19:25:56 3629

原创 Android ActionBar使用笔记

将actionbar常用方法整理,以便以后使用方便使用.一. 实现action bar: 1.修改styles.xml 文件<resources> <style name="AppTheme" parent="@android:style/Theme.Holo.Light"> <item name="colorPrimary">@color/colorPrimary</it

2016-07-15 16:59:54 371

原创 android dialog背景模糊化效果

最近做项目有这样的需求: 在activity中启动一个dialog时, 启动的dialog的背景设为启动acitivity的模糊化图片.实现思路: 1. 截屏, 获取当前activity的界面 2. 将获取的照片进行模糊化 3. 将模糊化的图片设为dialog的背景1.截屏, 获取当前activity的界面 private Bitmap takeScreenShot(Activity a

2016-06-30 12:35:23 10351 1

原创 linux poll与epoll模型简介

Linux I/O复用 高性能的网络服务器需要同时并发处理大量的客户端,而采用以前的那种对每个连接使用一个分开的线程或进程方法效率不高,因为处理大量客户端的时候,资源的使用及进程上下文的切换将会影响服务器的性能。一个可替代的方法是在一个单一的线程中使用非阻塞的I/O(non-blocking I/O)。1.poll 函数原型:#include<poll.h>int poll(stru

2016-06-27 09:51:00 678

原创 android 如何修改系统语言

最近有需求需要去编程实现根据选择去修改系统语言, 根据查资料看setting源码有两种方式, 在这里记录一下. 修改系统语言或者控制系统开关机等操作即使声明了对应权限还是会报错, 这是因为这些操作需要系统权限,这里也会介绍如何使用android studio对应用进行系统签名.一.如何查看系统的配置信息?在终端使用adb shell getprop命令可以查看系统配置信息, 我们会得到类似下面的输出

2016-06-15 11:18:36 18089 2

原创 c++ 中缀表达式转后缀表达式并计算值

什么是中缀表达式, 前缀表达式, 后缀表达式?在数据结构中, 二叉树的遍历有三种(这里不考虑分层遍历等特殊需求): 前序遍历, 中序遍历和后序遍历. 如果将表达式看做一颗二叉树, 那么中缀表达式, 前缀表达式和后缀表达式就是这三种遍历的结果.算数表达式本身就是中缀表达式, 也就是二叉树中序遍历的结果. 关于表达式二叉树是以运算符为根, 运算值为左右叶子. 例如表达式: 2 * 5 + 6 *

2016-06-07 13:26:11 12024 4

原创 Android 使用ViewGroup实现ViewPager的效果

ViewPager控件可以让我们做出很多漂亮的界面,例如导航, 页面菜单等. 那么我们如何去实现自己的ViewPager? 本文将介绍如何实现ViewPager控件, 旨在熟悉自定义控件开发.

2016-05-21 14:52:49 1933

原创 如何实现手机缓存清理的功能

android手机上的杀毒软件或者是手机管家等类似应用都会有垃圾清理的功能, 那么清理的缓存文件是什么? 怎么去找出应用的缓存文件并将他们清理, 在这里我将介绍如何实现手机垃圾文件清理的功能。缓存文件是什么,缓存文件的目录在那里? 我们知道方法: getCacheDir()的路径是 /data/data/包名/cache/

2016-05-10 18:26:12 4707 7

原创 贪心算法介绍与使用

贪心算法思想:   贪心算法不是从整体来考虑, 而是在某种意义上在局部做出最优选择. 对于有些问题局部最优不能代表整体最优选择,是不能使用贪心算法,例如01背包问题.贪心算法是自顶向下的方式分解各子问题, 用迭代的方式相继做出贪心选择, 每一次的选择的子问题再简化成规模更小的问题来选择。由于贪心算法与动态规划很类似, 在解决问题时需要确定问题是否具有贪心选择的性质.贪心算法

2016-05-08 20:23:01 2856

原创 android 音乐播放器关于歌词的处理

当我们制作音乐播放器中我觉得歌词的处理是比较难的一块, 对于音乐播放和媒体控制我们可以使用MediaPlayer来搞定,它提供了媒体控制的接口,使得我们对于媒体控制来说变得比较简单。但对于显示歌词来说就比较复杂了一点,例如让歌词一个字一个字高亮、快进时控制歌词处理或者倍速播放时歌词的处理等等, 这里我想介绍简单让一行歌词高亮显示, 等这行歌词唱完,让下一行歌词高亮显示。1. 解析歌词文件常

2016-05-08 13:06:02 5914 2

原创 linux下简单socket网络编程

在进行socket网络编程时, 我们需要了解一些必备的知识,例如什么是socket,ipv4的地址结构,套接字类型等等,不然上来直接看代码就会晕,当初学习网络编程时,看书上的例子,总有感觉书上讲的都很简要。再或者讲的原理太多把人绕晕。我这里只想让大家简单知道怎么使用socket进行网络编程并且给出的例子可以直接使用参考。1. 什么是socket(1) socket 可以看成是用户进程与

2016-05-07 14:19:42 965

原创 C++ ADO方式连接mysql数据库

对于软件开发其实说白了就是在不停地和数据打交道, 所以数据库的操作是必不可少的, 接下来介绍VC开发中利用ADO建立ODBC数据源来访问MySQL数据库.       从我接触的数据库编程方式来说, 我觉得在vc开发连接数据库是比较难的, 也是很容易出错. 在android中, 系统自带sqlite数据库,只需要使用SQLiteOpenHelper抽象类即可完成与数据库的操作. 在java中,

2016-05-06 10:02:48 11519 1

原创 android实现自定义控件及如何在其他项目中使用

自定义控件当android提供的控件不满足需求时, 我们需要自己去定制所需要的控件. 例如在一个TV项目中, 我们需要一种button, 当不选择时, 文本颜色是白色, 当选中时, 文本颜色是黑色, 这时android中自带的button是无法实现的, 那么我们需要去自己定制这种控件.自定义控件的步骤一般分为:(1). 声明一个view对象, 继承相对布局,或者线性布局或者

2016-05-04 16:16:39 4669

DemoSettingTheme

一个关于切换主题的demo

2017-04-24

SlideMenuView

使用自定义HorizontalScrollView实现侧滑显示菜单项的效果, 类似于QQ的消息界面

2016-06-30

SlideMenuItemView

简单实现侧滑菜单item, 功能类似qq的消息界面

2016-06-30

MyViewPagerDemo

Android 使用ViewGroup实现ViewPager的效果

2016-05-31

CleanCacheDemo

实现扫描手机缓存和一键清理缓存的功能demo, 提供给大家学习参考, 如有任何问题希望指正,最小支持android4.0

2016-05-11

mfc图形学实验

详细讲解mfc图形的绘制,用vc++绘制图形,了解vc++中mfc的绘图功能

2013-03-08

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

TA关注的人

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