Android--自定义控件
喜欢雨天的我
爱技术,爱生活.
展开
-
PreferenceActivity和PreferenceFragment实现设置界面
我们在Android原生系统中所看到的设置界面,使用的是与Preference相关的视图完成的。使用Preference相关的视图能较好地进行了文字的分类和排版。而原生的preference基本很难满足我们的需求开发,所以自定义preference必不可缺。而为了使应用更轻量更碎片化,preferencefragment也是需要的。本篇文章结构将围绕一个例子进行详解,同时使用了自定义p转载 2017-03-09 10:17:45 · 2926 阅读 · 0 评论 -
Android流式布局
概述大家都知道,java 图形编程有一个布局叫FlowLayout,即流式布局。但Android没有,所以今天教大家写一个Android版的流式布局。代码核心代码(FlowLayout.java)如下:[java] view plain copypackage com.example.flowlayout;转载 2016-06-21 11:01:12 · 2208 阅读 · 0 评论 -
Android VectorDrawable与SVG
转载:http://blog.csdn.net/jjwwmlp456/article/details/40614919Material Design系列Android(Lollipop/5.0) Material Design(一) 简介Android(Lollipop/5.0) Material Design(二) 入门指南Androi转载 2016-06-22 11:39:18 · 2181 阅读 · 0 评论 -
dp转化为px的原因
为什么要进行Dp转化为PX 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法。这个时候,如果需要设置dp的话,就要将dp转换成px了。 以下是一个应用类,方便进行px和dp之间的转原创 2016-06-24 16:44:50 · 1988 阅读 · 1 评论 -
实现tablayout的浮动效果
摘要使用tablayout 打造高度不一样的tab,选中的tab比未选中的tab高,并且有选中效果。要实现下图这样的效果,请忽略红线。本人的实现综指是以最少的代码来实现。每一个tab使用自定义view.每个tab是由两个控件叠加的。没有选中的时候下面一层的背景为透明,选中的时候下面一层的背景为放大效果的图片。tab的上面一层的背景为白色。tabLayou转载 2016-06-25 12:57:21 · 2184 阅读 · 0 评论 -
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16919859今天是2013年的最后一天了,这里首先提前祝大家新年快乐!同时,本篇文章也是我今年的最后一篇文章了,因此我想要让它尽量有点特殊性,比起平时的文章要多一些特色。记得在今年年初的时候,我写的第一篇文章是模仿360手机卫士的桌面悬浮窗效果,那么为了能够首尾呼应,今年的转载 2016-06-30 16:21:14 · 477 阅读 · 0 评论 -
Android手势密码解锁
这篇来分享一下绘制手势密码的实现(主要是设置手势密码、校验手势密码):一、大致界面介绍: 图1转载 2016-07-01 11:13:21 · 3378 阅读 · 3 评论 -
CoordinateLayout的滑动冲突
先看看官网对于AppBarLayout.OnOffsetChangedListener的解释:Interface definition for a callback to be invoked when an AppBarLayout's vertical offset changes. 当AppBarLayout垂直方向上的偏移量发生改变时,为触发一个回调方法定义的接口。触发的回调方法是:原创 2016-07-01 11:56:22 · 4818 阅读 · 3 评论 -
Android 系统状态栏沉浸式/透明化完整解决方案
转载:http://www.jianshu.com/p/34a8b40b9308前言网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,统计提炼出来的相对靠谱的一套解决方案.关于术语网上有很多争论:你这状态栏是变色龙状态栏,不是沉浸式的这应该是沉浸式的状态栏吧,系统栏与actionbar颜色设为一致转载 2016-07-01 13:39:39 · 10955 阅读 · 2 评论 -
实现状态栏透明化(Android5.0)
实现状态栏透明化:如下代码即可实现(需要在setContentView之前书写代码)public class MainActivity extends Activity { @SuppressLint("InlinedApi") @Override protected void onCreate(Bundle savedInstanceState) {原创 2016-07-01 13:49:58 · 620 阅读 · 0 评论 -
RecycleView多Item布局
用RecycleView来实现布局形式,默认只能指定一种布局格式,但是实际中我们的布局经常会用到多种类型的布局方式。如何实现呢?今天来说下常用的2钟方式。第一种:通过自定义addHeadView方法来添加头布局RecycleViewWithHead.Java[java] view plain copyimp转载 2016-06-21 09:43:38 · 2227 阅读 · 0 评论 -
友盟开发APi(统一APK数)
1. 集成准备相关视频教程,请前往友盟课堂。1.1 获得Appkey集成友盟SDK之前,您首先需要到友盟官网注册并且添加新应用,获得Appkey特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名。1.1.1转载 2016-06-20 18:05:57 · 4145 阅读 · 0 评论 -
自定义prigressDialog(无丑陋的黑色背景)
我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在Android中让大家最容易想到的就是progressbar或者progressDialog,区别在于前者是一个控件,后者是对话框。由于一些需求在弹出进度条时不希望用户能够操作其他控件,所以只能使用progressDialog,这个时候有遇到了一个问题,我不想要progressD转载 2016-06-19 17:49:28 · 2560 阅读 · 0 评论 -
setShadowLayour的属性介绍
setShadowLayer(float radius, float dx, float dy, int shadowColor)radius表示阴影的扩散半径;dx和dy表示阴影平面上的偏移值;shadowColor就不说了阴影颜色。注意: 这个方法不支持硬件加速,所以我们要测试时必须先关闭硬件加速。加上这一句 setLayerType(LAYER_TYPE_SOFTWARE, null);原创 2017-03-08 16:14:22 · 968 阅读 · 0 评论 -
Android——3D旋转变换的动画封装
实现3D旋转动画的封装public class FlipAnimator extends Animation { public static final int DIRECTION_X = 1, DIRECTION_Y = 2, DIRECTION_Z = 3; private Camera camera; private View fromView; private V原创 2017-03-08 15:24:55 · 600 阅读 · 0 评论 -
Android高斯模糊(RenderScript)
第一步我们需要建立一个Drawable转化为Bitmap的工具类BlurredUtilpublic class BlurredUtil { /** * 将Drawable对象转化为Bitmap对象 * * @param drawable Drawable对象 * @return 对应的Bitmap对象 */ st原创 2017-03-08 14:47:29 · 1594 阅读 · 0 评论 -
自定义Behavior的艺术探索-仿UC浏览器主页
出处:http://www.jianshu.com/p/f7989a2a3ec2前言&效果预览最近几个周末基本在研究CoordinatorLayout控件和自定义Behavior当中,这期间看了不少这方面的知识,有关于CoordinatorLayout使用的文章,CoordinatorLayout的源码分析文章等等,轻轻松松入门虽然简单,无耐于网上介绍的一些例子实在是太转载 2017-01-23 15:13:32 · 1390 阅读 · 0 评论 -
Android Behavior
原文出处:http://www.jianshu.com/p/a506ee4afecbBehavior是Android新出的Design库里新增的布局概念。Behavior只有是CoordinatorLayout的直接子View才有意义。可以为任何View添加一个Behavior。Behavior是一系列回调。让你有机会以非侵入的为View添加动态的依赖布局,和处理父布局(C转载 2017-01-18 14:50:12 · 5326 阅读 · 0 评论 -
ViewDragHelper
讲解不错的文章。原文出处:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0911/1680.htmlViewDragHelper其实ViewDragHelper并不是第一个用于分析手势处理的类,gesturedetector也是,但是在和拖动相关的手势分析方面gesturedetector只能说是勉为其转载 2017-01-18 14:08:56 · 448 阅读 · 0 评论 -
Android Transtion
原文出处:http://www.jianshu.com/p/0af52be90ae6Android Transition Framwork 主要用来做三件事:Activity间的转场动画;不同Activity或Fragment间元素共享,让交互更连贯;同一个Activity之间一些View的变换动画。1.Activity转场效果当从A转载 2017-01-18 13:56:31 · 1038 阅读 · 0 评论 -
onFinishInflate何时被调用
自定义view中onFinishInfalte会在什么时候被调用呢。当我们的XML布局被加载完后,就会回调onFinshInfalte这个方法,在这个方法中我们可以初始化控件和数据。原创 2016-12-22 13:35:08 · 9543 阅读 · 0 评论 -
Android 获取并显示远程图片 Picasso框架的使用
Android 获取并显示远程图片 Picasso框架的使用(一)转载请注明出处:明桑Android在Android开发中,常需要从远程获取图片并显示在客户端,当然我们可以使用原生HttpUrlConnection和AsyncTask等操作来完成,但并不推荐,因为这样不仅需要我们编写大量的代码,还需要处理缓存和下载管理等,最好自己封装成库或者采用第三方库;Picas转载 2016-06-19 14:57:06 · 963 阅读 · 1 评论 -
RecycleView的上啦加载更多
一句话教你搞定RecycleView的上啦加载更多LinearLayoutManager layoutManager;layoutManager = new LinearLayoutManager(getActivity()); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerview.set原创 2016-07-01 14:04:37 · 532 阅读 · 0 评论 -
RecycleView的上啦加载下拉刷新
一、概述本篇博客介绍的就是如何使用SwipeRefreshLayout和RecyclerView实现高仿简书Android端的下拉刷新和上拉加载更多的效果。根据效果图可以发现,本案例实现了如下效果:第一次进入页面显示SwipeRefreshLayout的下拉刷新效果当内容铺满屏幕时,向下滑动显示“加载中…”效果并加载更多数据当SwipeRefreshLa转载 2016-07-01 14:08:29 · 842 阅读 · 0 评论 -
去掉WebView中的白色背景
我们需要分为两步进行1 在布局文件中设置 android:background="@android:color/transparent"2 在代码中设置 mWebView.setBackgroundColor(0); mWebView.getBackground().setAlpha(0);总结:两者结合使用即可去掉webView的白色原创 2016-07-01 16:45:27 · 3279 阅读 · 2 评论 -
listview viewpager滑动 跳动 冲突解决
Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决在listview 上使用 addHeaderView 在第一栏添加 viewpager 当做header 如:当触发 滑动事件 的时候容易引起 滑动冲突 (比如斜着滑动viewpager 的时候 listview会跳动) 特别是在 下拉刷新或者上转载 2016-07-16 16:00:31 · 2115 阅读 · 0 评论 -
Android图片上覆盖文字
public Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) { Resources resources = gContext.getResources(); float scale = resources.getDisplayMetrics().density; Bi原创 2016-07-19 20:35:54 · 2796 阅读 · 0 评论 -
滑动返回上一级
滑动Activity返回今天无意间翻到老东西,今天带来滑动返回界面的效果 这个是我在GitHub上看到的一个demo,并且细心的翻阅和查看,实现原理是通过一个底部fragmentlayout和顶部的viewgroup组成,并且当滑动时候,只是对最上层的view进行截屏。 下面我们从源码中找到思路。 * 核心代码(基类) package com.bureak.parallaxswipeba原创 2016-07-29 11:52:13 · 1687 阅读 · 0 评论 -
写一个简单的实现的具有冲击效果的界面效果
首先我们先看一下效果图这里我给大家推荐一个学习和了解设计师们对材质设计的设计网站,这里充满了各种设计师,通过photoshop等绘图软件,将android,pc,window,ios等界面设计,设计出来,暂时先不管有多少coding出来,但是至少效果真的很酷炫,好了废话不多,网址接好:material design点击进入 或者复制链接:http://www.materialup.com/接下来我原创 2016-08-10 15:59:26 · 644 阅读 · 0 评论 -
通过OnGlobalLayoutListener获得视图的高度
首先我们需要明白在onCreate()中View.getWidth和View.getHeight无法过的一个view的高度和宽度。这是因为Adroid的生命周期中,View组件布局只有在onResume回到后才完成。因此我们需要使用到 getViewTreeObserver().addOnGlobalLayoutListener()来获得宽度或者高度。这是获得一个view的宽度和高度的方法之原创 2016-08-26 19:13:57 · 840 阅读 · 0 评论 -
Android关于webview自适应与优化
【TOC】webview的适配和优化webview自适应pc网页屏幕关键属性: webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webSettings.setUseWideViewPort(true);全部代码WebSettings webSettings = view.getSettings(); web原创 2016-10-13 13:04:31 · 5150 阅读 · 0 评论 -
模糊处理代码段
public class BlurBitmap { /** * 图片缩放比例 */ private static final float BITMAP_SCALE = 0.4f; /** * 最大模糊度(在0.0到25.0之间) */ private static final float BLUR_RADIUS = 25f;原创 2016-10-22 20:43:34 · 943 阅读 · 0 评论 -
自定义插值器TypeEvaluator
TypeEvaluator的使用方法首先定义一个具有x,y,radius的类,帮助我们动态改变对应的x,y,radus的值public class Particle { public float x; public float y; public float radius; public Particle() { } public Particle(floa原创 2016-10-23 17:30:20 · 953 阅读 · 0 评论 -
Android手势分发和View测量思维导图
无意间发现一个非常好的思维导图(规范了下对视图的认知) view的手势分发视图距离的测量原创 2016-10-23 19:51:52 · 670 阅读 · 0 评论 -
ViewPager绕过预加载
ViewPager绕过预加载首先,介绍两个方法void setUserVisibleHint(boolean isVisibleToUser)、boolean getUserVisibleHint(),它们分别用作设置/获得Fragment可见状态,我们可以重写Fragment在其中做判断,代码如下:import android.support.v4.app.Fragment;public abst原创 2016-07-16 11:54:23 · 461 阅读 · 0 评论 -
图片下拉放大 导航栏下拉隐藏 上拉出现
在实际项目开发中经常会遇到这样的需求:1.TableView 表头视图下拉放大 松手后恢复原状 2.导航条初始时透明 随着表头视图的上滑逐渐出现 下拉表头视图时消失 最典型的例子莫过于新浪微博的个人主页。下面就跟大家简单分享下具体的实现步骤:实现: 步骤1://定义表头视图属性@interface PDMyUserViewController ()<UIScrollViewDelegate>@p转载 2016-07-15 11:30:11 · 1903 阅读 · 3 评论 -
dp和px的相互转化
dp和px的相互转化在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法。这个时候,如果需要设置dp的话,就要将dp转换成px了。 以下是一个应用类,方便进行px和dp之间的转换。pub原创 2016-07-14 20:27:54 · 636 阅读 · 0 评论 -
Android完美实现kitkat透明导航效果
完美实现Android4.4的透明状态栏效果不多说 代码奉上:(注意要使用noActionbar)public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { //这两句为关键所在 第一个是使状态原创 2016-07-02 11:30:00 · 1233 阅读 · 0 评论 -
自定义ProgressBar的进度色彩
自定义ProgressBar的进度色彩在res下创建drawable文件夹,新建文件drawable/progressbar_color.xml<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 背景 gradi原创 2016-07-02 17:01:50 · 737 阅读 · 0 评论 -
高斯模糊的实现方法
高斯模糊高斯模糊就是将指定像素变换为其与周边像素加权平均后的值,权重就是高斯分布函数计算出来的值。一种实现点击打开链接[java] view plain copy print?public static void gaussBlur(int[] data, int width, int height, int radius转载 2016-07-07 21:36:31 · 6205 阅读 · 0 评论