资源简介
微信 自定义标签代码,采用了flowlayout布局
代码片段和文件信息
package com.zhd.tag;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
public class FlowLayout extends ViewGroup
{
private static final String TAG = “FlowLayout“;
public FlowLayout(Context context AttributeSet attrs)
{
super(context attrs);
}
@Override
protected ViewGroup.LayoutParams generateLayoutParams(
ViewGroup.LayoutParams p)
{
return new MarginLayoutParams(p);
}
@Override
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs)
{
return new MarginLayoutParams(getContext() attrs);
}
@Override
protected ViewGroup.LayoutParams generateDefaultLayoutParams()
{
return new MarginLayoutParams(LayoutParams.MATCH_PARENT
LayoutParams.MATCH_PARENT);
}
/**
* 负责设置子控件的测量模式和大小 根据所有子控件设置自己的宽和高
*/
@Override
protected void onMeasure(int widthMeasureSpec int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec heightMeasureSpec);
// 获得它的父容器为它设置的测量模式和大小
int sizeWidth = MeasureSpec.getSize(widthMeasureSpec);
int sizeHeight = MeasureSpec.getSize(heightMeasureSpec);
int modeWidth = MeasureSpec.getMode(widthMeasureSpec);
int modeHeight = MeasureSpec.getMode(heightMeasureSpec);
// Log.e(TAG sizeWidth + ““ + sizeHeight);
// 如果是warp_content情况下,记录宽和高
int width = 0;
int height = 0;
/**
* 记录每一行的宽度,width不断取最大宽度
*/
int lineWidth = 0;
/**
* 每一行的高度,累加至height
*/
int lineHeight = 0;
int cCount = getChildCount();
// 遍历每个子元素
for (int i = 0; i < cCount; i++)
{
View child = getChildAt(i);
// 测量每一个child的宽和高
measureChild(child widthMeasureSpec heightMeasureSpec);
// 得到child的lp
MarginLayoutParams lp = (MarginLayoutParams) child
.getLayoutParams();
// 当前子空间实际占据的宽度
int childWidth = child.getMeasuredWidth() + lp.leftMargin
+ lp.rightMargin;
// 当前子空间实际占据的高度
int childHeight = child.getMeasuredHeight() + lp.topMargin
+ lp.bottomMargin;
/**
* 如果加入当前child,则超出最大宽度,则的到目前最大宽度给width,类加height 然后开启新行
*/
if (lineWidth + childWidth > sizeWidth)
{
width = Math.max(lineWidth childWidth);// 取最大的
lineWidth = childWidth; // 重新开启新行,开始记录
// 叠加当前高度,
height += lineHeight;
// 开启记录下一行的高度
lineHeight = childHeight;
} else
// 否则累加值lineWidthlineHeight取最大高度
{
lineWidth += childWidth;
lineHeight = Math.max(lineHeight childHeight);
}
// 如果是最后一个,则将当前记录的最大宽度和当前lineWidth做比较
if (i == cCount - 1)
{
width = Math.max(width lineWidth);
height += lineHeight;
}
}
setMeasuredDimension((modeWidth == MeasureSpec.EXACTLY) ? sizeWidth
: width (modeHeight == MeasureSpec.EXACTLY) ? sizeHeight
: height);
}
/**
* 存储所有的View,按行记录
*/
private List> mAllViews = new ArrayList>();
/**
* 记录每一行的最大高度
*/
pri
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 475 2015-01-13 10:10 weixin_tags\.classpath
文件 852 2014-07-30 09:53 weixin_tags\.project
文件 57 2015-01-13 10:10 weixin_tags\.settings\org.eclipse.core.resources.prefs
文件 177 2015-01-14 18:41 weixin_tags\.settings\org.eclipse.jdt.core.prefs
文件 865 2015-01-24 22:42 weixin_tags\AndroidManifest.xm
文件 51394 2014-07-26 10:06 weixin_tags\ic_launcher-web.png
文件 621451 2014-07-26 10:06 weixin_tags\libs\android-support-v4.jar
文件 781 2014-07-26 10:06 weixin_tags\proguard-project.txt
文件 563 2015-01-13 20:37 weixin_tags\project.properties
文件 311 2015-01-13 22:24 weixin_tags\res\drawable\addtag_text_bg.xm
文件 315 2015-01-13 22:24 weixin_tags\res\drawable\addtag_text_color.xm
文件 373 2015-01-13 22:26 weixin_tags\res\drawable\bg_addtag_activated.xm
文件 453 2015-01-13 22:25 weixin_tags\res\drawable\bg_addtag_normal.xm
文件 453 2015-01-13 22:23 weixin_tags\res\drawable\bg_tag_activated.xm
文件 429 2015-01-13 22:23 weixin_tags\res\drawable\bg_tag_normal.xm
文件 345 2014-07-26 13:36 weixin_tags\res\drawable\flag_01.xm
文件 411 2014-08-02 17:57 weixin_tags\res\drawable\flag_02.xm
文件 352 2014-08-02 17:57 weixin_tags\res\drawable\flag_03.xm
文件 352 2015-01-13 10:51 weixin_tags\res\drawable\flag_03_checked.xm
文件 364 2015-01-13 10:33 weixin_tags\res\drawable\flag_04.xm
文件 519 2015-01-13 22:28 weixin_tags\res\drawable\flag_edit.xm
文件 305 2015-01-13 22:22 weixin_tags\res\drawable\tag_text_bg.xm
文件 309 2015-01-13 22:24 weixin_tags\res\drawable\tag_text_color.xm
文件 7658 2014-07-26 10:06 weixin_tags\res\drawable-hdpi\ic_launcher.png
文件 3777 2014-07-26 10:06 weixin_tags\res\drawable-mdpi\ic_launcher.png
文件 12516 2014-07-26 10:06 weixin_tags\res\drawable-xhdpi\ic_launcher.png
文件 24777 2014-07-26 10:06 weixin_tags\res\drawable-xxhdpi\ic_launcher.png
文件 5425 2015-01-24 22:43 weixin_tags\res\layout\activity_main.xm
文件 390 2015-01-13 22:29 weixin_tags\res\layout\addtag_text.xm
文件 384 2015-01-13 22:21 weixin_tags\res\layout\tag_text.xm
............此处省略38个文件信息
相关资源
- 读取Excel文件到DataGridView
- 简单个人书管理系统的设计与实现
- TI Power Mgt Voltage Regulator.IntLib
- CTags及tags58插件
- weixinqy.txt
- 自己写的一个分页控件,可以实现d
- datagridview增加汇总行 源码
- jtag的verilog代码
- 实现TreeView和ListView合体效果的控件
- flowtaglayout相关源码 直接copy到项目中
- DSP、ARM、TI-JTAG引脚定义及规范
- datagrideview实现导出数据
- processing时钟
- TAG静态化-5.7-亲测可用转拼音
- datagridview添加一个合计行[美好实用版
- easyui datagrid实现实现上下左右和回车
- 一个可折叠行的DataGridView控件
- wintreetagger.exe
- DataGridView 合计行
- JTAG 驱动安装程序及方法
- MSP430F5438A 与仿真器的SBW接法
- 14芯和20芯的JTAG的原理图设计
- DataGridViewAutoFilter 每列多选
- usbisp ii WIN7/8线驱动-双龙JUNGO-Atmel-
- JTAG的封装库及演示
- Demo_Voltage_Read。vi
- CWeixin 类,可以做微信PC客户端
- Datagridview合计行
- JTAG接口作用和JTAG原理介绍
- JTAG设计规范
评论
共有 条评论