[置顶] Android自定义控件
2016-04-28 20:47
405 查看
Android中Canvas绘图基础详解
Android Paint、Canvas、Matrix使用讲解(一、Paint)
Android Paint之 setXfermode PorterDuffXfermode 讲解
Canvas开篇之drawBitmap方法讲解
Android 手把手教您自定义ViewGroup(一)
Android 自定义View (一)
Android 自定义View (二) 进阶
Android 自定义View (三) 圆环交替 等待效果
Android 自定义View (四) 视频音量调控
Android 深入理解Android中的自定义属性
Android ViewDragHelper完全解析 自定义ViewGroup神器
Android 自定义控件实战
Android LayoutInflater原理分析,带你一步步深入了解View(一)
Android视图绘制流程完全解析,带你一步步深入了解View(二)
Android视图状态及重绘流程分析,带你一步步深入了解View(三)
Android自定义View的实现方法,带你一步步深入了解View(四)
Android自定义控件三部曲文章索引
自定义View:测量measure,布局layout,绘制draw
自定义ViewPager
粘性控件
侧滑删除
视差特效
侧边栏SlidingMenu
3D画廊 Gallery
流式布局FlowLayout
水波纹Ripple
旋转菜单
下拉刷新
侧滑面板
快速索引
轮播图/广告条
等比例显示控件
下拉选择框Spinner
微信朋友圈,QQ空间,微博等列表展示的功能实现
![](http://img.blog.csdn.net/20170117133117599?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218185424488?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170217133744145?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170217133829400?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170217133912976?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218185518531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20161014212221565)
![](http://img.blog.csdn.net/20170217141301759?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170217141317256?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170117135443274?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218125200662?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218125302034?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218125320053?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218125418364?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20160911225554974)
![](http://img.blog.csdn.net/20170218121413936?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218095423642?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170218095423642?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20160911235727896)
![](http://img.blog.csdn.net/20170218112811591?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://github.com/JackChen1999/RatioLayout/raw/master/art/RadioLayout.jpg)
![](http://img.blog.csdn.net/20170117141326104?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170217111833141?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170217111848599?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170516154735496?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXhpMjk1MzA5MDY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Android Paint、Canvas、Matrix使用讲解(一、Paint)
Android Paint之 setXfermode PorterDuffXfermode 讲解
Canvas开篇之drawBitmap方法讲解
Android 手把手教您自定义ViewGroup(一)
Android 自定义View (一)
Android 自定义View (二) 进阶
Android 自定义View (三) 圆环交替 等待效果
Android 自定义View (四) 视频音量调控
Android 深入理解Android中的自定义属性
Android ViewDragHelper完全解析 自定义ViewGroup神器
Android 自定义控件实战
Android LayoutInflater原理分析,带你一步步深入了解View(一)
Android视图绘制流程完全解析,带你一步步深入了解View(二)
Android视图状态及重绘流程分析,带你一步步深入了解View(三)
Android自定义View的实现方法,带你一步步深入了解View(四)
Android自定义控件三部曲文章索引
自定义View:测量measure,布局layout,绘制draw
自定义控件
滑动开关自定义ViewPager
粘性控件
侧滑删除
视差特效
侧边栏SlidingMenu
3D画廊 Gallery
流式布局FlowLayout
水波纹Ripple
旋转菜单
下拉刷新
侧滑面板
快速索引
轮播图/广告条
等比例显示控件
下拉选择框Spinner
微信朋友圈,QQ空间,微博等列表展示的功能实现
旋转菜单
下拉选择
下拉刷新
滑动开关
轮播图 广告条
侧边栏SlidingMenu
水波纹
自定义ViewPager
快速索引
粘性控件
视差特效
侧滑面板
侧拉删除
等比例显示控件
![](https://github.com/JackChen1999/RatioLayout/raw/master/art/RadioLayout.jpg)
流式布局FlowLayout
3D画廊
微信朋友圈,QQ空间,微博等列表展示的功能实现
自定义吐司
public class AddressTost implements OnTouchListener { private WindowManager mWM; private Context mContext; private WindowManager.LayoutParams mParams; private TextView mLocation; private TextView mView; public AddressTost(Context context) { this.mContext = context; mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); mParams = new WindowManager.LayoutParams(); WindowManager.LayoutParams params = mParams; params.height = WindowManager.LayoutParams.WRAP_CONTENT; params.width = WindowManager.LayoutParams.WRAP_CONTENT; params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE // | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE //需要toast 有触摸事件 | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; params.format = PixelFormat.TRANSLUCENT; // params.windowAnimations = // com.android.internal.R.style.Animation_Toast; // params.type = WindowManager.LayoutParams.TYPE_TOAST;//土司天生没有触摸事件 params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;//换成电话的类型 /** * 展示号码归属地显示 */ public void show(String location) { mLocation = (TextView) view.findViewById(R.id.tv_location); mView = new TextView(mContext); // 设置归属地的颜色 mView.setBackgroundColor(Color.RED); // 设置归属地的位置 mLocation.setText(location); mWM.addView(mView, mParams); } /** * 隐藏号码归属地 */ public void hide() { // 隐藏土司 if (mView!= null) { // note: checking parent() just to make sure the view has // been added... i have seen cases where we get here when // the view isn't yet added, so let's try not to crash. if (mView.getParent() != null) { // if (localLOGV) Log.v(TAG, "REMOVE! " + mView + " in " + // this); mWM.removeView(mView); } view = null; } } }
自定义对话框
public class AddressDialog extends Dialog { private Window window; private OnItemClickListener mOnItemClickListener; //把我们自己的样式传给父类 //屏蔽父类里面的样式 public AddressDialog(Context context) { super(context, R.style.AddressDialogStyle); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.dialog_address_style); window = getWindow(); //获取到当前窗体的样式 LayoutParams params = window.getAttributes(); params.gravity = Gravity.BOTTOM; // | Gravity.CENTER_HORIZONTAL; //设置窗体的属性 window.setAttributes(params); } }
相关文章推荐
- Bitmap的存储发展
- AndroidManifest文件中的几个细节
- android中把文件存储在SD卡中
- Android最佳性能实践(三)——高性能编码优化
- Android Intent意图详解
- android横线和竖线
- Android最佳性能实践(二)——分析内存的使用情况
- android 读写txt文件
- Android 事件处理机制
- ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。 设置的方式包括: 1. 在layout xml中定义Android:s
- 【Android动画九章】-AlphaAnimation(渐变动画)
- Android最佳性能实践(一)——合理管理内存
- 我的Android进阶之旅------>解决Jackson等第三方转换Json的开发包在开启混淆后转换的实体类数据都是null的bug
- android.textiview.settextcolor失效的问题
- 关于 Fiddler 出现Response is encoded and may need to be decoded before inspection.
- Android scrollTo()与scrollBy()的区别
- Android中Parcelable接口用法
- android获取周围WIFI热点
- 彻底解决Android 应用方法数不能超过65536的问题
- android USB触摸屏是滑鼠模状态问题