
自定义控件
火鸟菲戈
已经告别Android了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自定义控件:飞入飞出的效果
效果图: 用到4个类(copy) 1 布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"原创 2016-04-08 16:05:11 · 2772 阅读 · 2 评论 -
自定义控件:IndexBar
技术点 如何绘制text? canvas.drawText(letter, x, y, paint); 如何计算x y? 文字的xy 坐标是文字左下角为(0,0) x坐标:单元格宽度/2-文字宽度的/2 y坐标:单元格高度/2+文字高度/2 float x = cellHeight / 2 - paint.measureText(letter) / 2; R...原创 2018-03-27 15:37:27 · 1179 阅读 · 0 评论 -
自定义控件:SlideMenu
思路 侧滑菜单有2部分,左布局和主布局,所以必须继承ViewGroup,所有先要在onMeasure()测量menuView+contentView的宽高,这样在onLayout()中摆放着2个子布局,在move过程中调用scrollBy()实现滑动效果,在手指移开后打开或关闭menu 效果图 过程 布局 <?xml version="1.0" enco...原创 2018-03-20 18:37:37 · 1554 阅读 · 0 评论 -
自定义控件:ViewDragHelper(一) QQ5.0
思路 先看效果图 思路: 布局内放2个ViewGroup,leftView和mainView,leftView就是侧拉栏,mainView是主页面。这2个view都放到DragLayout中,leftView在下,mainView在上,当我们往右拖动mainView的时候,mainView使用缩放动画,leftView使用缩放+透明度+移动动画。 布局: <?xml versi...原创 2018-03-24 17:02:06 · 370 阅读 · 0 评论 -
自定义控件:ListView下拉刷新和上拉加载
在介绍之前,先要了解paddingTop的作用,我们知道paddingTop>0,那么内容和View的上边是有一段内边距的;那么如果paddingTop<0,会出现什么情况呢?就是内容超出了上边框。 TextView tv = findViewById(R.id.tv); tv.setPadding(0, 0, 0, 0); 的情况是: tv.setPadding(0,...原创 2018-03-22 17:00:58 · 5387 阅读 · 1 评论 -
自定义SwitchView
先介绍几个单词,thumb:滑块,track:滑道,Switch是由滑块和滑道组成的,在Switch中,滑块和滑道的高是相同的,而且是固定的,所以我们给Switch设置width+height不会改变它的宽高。 参考: http://mp.weixin.qq.com/s/PlUN1LNumTycnLJZhWztTw 那么怎么设置滑块的高度超过滑道的高度呢?或者滑道的高度超过滑块的高度? ...原创 2018-02-12 18:00:34 · 1281 阅读 · 0 评论 -
自定义控件:带有清除功能的 ClearEditText
实现点击“删除”按钮,会清空EditText基本实现首先给给EditText设置drawableRight属性<EditText ... android:drawableRight="@drawable/edittext_delete" android:paddingRight="50dp" android:paddingRight="50dp" ... />原创 2017-08-29 15:55:52 · 957 阅读 · 0 评论 -
自定义控件:Toast
比较简单,直接贴代码效果图toast的布局:custom_toast.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" and原创 2017-06-06 16:53:43 · 542 阅读 · 1 评论 -
ViewDragHelper的使用(一):自定义DragFrameLayout(childView可拖动)
DragFrameLayout实现拖动子控件的效果效果图介绍DragFrameLayout继承自FrameLayout,可以对其内部的子View进行拖曳,子View的数量不限,一次只可以拖动一个view。 当然也可以继承RealtiveLayout使用步骤 将这个类DragFrameLayout放入xml中,里面放入需要拖动的View, 获取DragFrameLayout和子View 将子View原创 2017-03-31 11:31:41 · 1986 阅读 · 0 评论 -
自定义控件:滚动的TextView跑马灯
自定义滚动的textView的3中方法: 方法一:xml中配置 android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" 方法二:代码配置 tv_des.setFocusable(true); tv_des.setFocusa原创 2016-04-20 16:41:17 · 571 阅读 · 0 评论 -
自定义控件:自定义组合控件+自定义属性
自定义组合控件: 就是将几个基本控件放到一个控件view中,该view需要extends 五大布局中的任何一种,自定义组合控件一般和自定义属性共同出现。 Demo 自定义组合控件包含2个TextView,1个CheckBox,把这3个view用1个view来显示并控制。 效果图步骤 1 创建自定义组合控件的布局和类,并在layout节点下使用, 2 创建自定义属性并在layou原创 2016-04-23 13:40:08 · 664 阅读 · 0 评论 -
自定义控件:AlertDialog
先显示原生的AlertDialog,在显示自定义的AlertDialog。 思路:2个Button分别打开2中dialog。 效果图: 原生: 自定义: 自定义的步骤: // 自定义dialog /** * 1 创建view:View.inflate(context, R.layout.dialog_login, null); * 2 设置view:b原创 2016-04-20 18:03:47 · 589 阅读 · 0 评论 -
自定义控件:动态获取控件的高
/** * 根据指定的宽高比,动态设置imageview的高 * @author cui * */ public class RatioImageView extends ImageView { public float ratio = 0f; public RatioImageView(Context context, AttributeSet attrs, int defStyle原创 2016-04-08 16:19:31 · 673 阅读 · 0 评论 -
自定义控件:ListView视差动画
效果图 思路 在下拉过程中,不断扩大图片的height。下拉过程中图片的高度=原始ImageView的高度+下拉距离,当然也可以是下拉距离/2,这样下拉2个单位,图片的高度才增加1个单位。所以需要先要获取头布局中的ImageView,获取原高度。 当手指挪开的时候,需要让图片的高度复原,这个采用的是属性动画,在动画执行的过程中,获取value,并重新设置图片的高度。 Step1:先...原创 2018-03-29 14:48:19 · 371 阅读 · 0 评论