SuperTextView是一个非常强大的View,通过自由的属性设置,可以配置出各式各样的布局效果
。SuperButton拥有shape文件的大部分属性,无需配置XML文件就可以轻松实现shape的效果
。
- 演示效果
- 使用案例
- 属性表: (SuperTextView)
MarqueeView
- 属性表: (MarqueeView)
属性名 | 类型 | 默认值 | 备注 |
---|---|---|---|
mq_interval | integer | 2500ms | 翻页的间隔 |
mq_animDuration | integer | 500ms | 动画的间隔 |
mq_animIn | reference | R.anim.marquee_bottom_in | 进入动画的样式资源 |
mq_animOut | reference | R.anim.marquee_top_out | 退出动画的样式资源 |
常用方法
- 设置滚动数据的工厂:setMarqueeFactory(MarqueeFactory factory)
- 设置动画执行时间:setAnimDuration(int animDuration)
- 设置翻页时间间隔:setInterval(int interval)
- 开始滚动:startFlipping()
- 停止滚动:stopFlipping()
滚动字幕,支持滚动数据的动态添加、更新、修改和销毁,匀速滚动。
- 演示效果
- 使用案例
android:id="@+id/tv_marquee"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="20dp"
android:background="#88dddddd"
app:mtv_isAutoFit="true"
app:mtv_isAutoDisplay="true"/>
mTvMarquee.setOnMarqueeListener(new MarqueeTextView.OnMarqueeListener() {
@Override
public DisplayEntity onStartMarquee(DisplayEntity displayMsg, int index) {
if (displayMsg.toString().equals("离离原上草,一岁一枯荣。")) {
return null;
} else {
ToastUtils.toast("开始滚动:" + displayMsg.toString());
return displayMsg;
}
}
@Override
public List<DisplayEntity> onMarqueeFinished(List<DisplayEntity> displayDatas) {
ToastUtils.toast("一轮滚动完毕!");
return displayDatas;
});
mTvMarquee.startSimpleRoll(datas);
- 属性表: (MarqueeTextView)
常用方法
- 开始滚动
startSimpleRoll(List<String> list);
startRoll();
- 滚动数据添加设置
- 滚动数据的销毁
removeDisplayString(String displayString)
removeDisplayEntity(DisplayEntity displayEntity)
设置滚动的速度:setSpeed(int speed)
判断是否在滚动:isRolling()
获取显示消息的数量:getDisplaySize()
根据index获取滚动的消息实体:getDisplayItem(int index)
ExpandableTextView
- 演示效果
- 使用案例
<com.xuexiang.xui.widget.textview.ExpandableTextView
android:id="@+id/expand_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
app:etv_maxCollapsedLines="5">
<TextView
android:id="@id/expandable_text"
style="@style/TextStyle.Content"
android:layout_width="match_parent"
android:gravity="center_vertical"
android:singleLine ="false"/>
<ImageButton
android:id="@id/expand_collapse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="?attr/xui_config_content_spacing_vertical"
android:layout_gravity="right|bottom"
android:background="@android:color/transparent"/>
</com.xuexiang.xui.widget.textview.ExpandableTextView>
mExpandableTextView.setText(getString(R.string.etv_content_demo1));
@Override
public void onExpandStateChanged(TextView textView, boolean isExpanded) {
ToastUtils.toast(isExpanded ? "Expanded" : "Collapsed");
}
});
- 属性表: (ExpandableTextView)
属性名 | 类型 | 默认值 | 备注 |
---|---|---|---|
etv_maxCollapsedLines | integer | 8 | 最大收缩展示的行数 |
etv_animDuration | integer | 300ms | 动画持续的间隔 |
etv_animAlphaStart | float | 0.7f | 动画开始时的透明度 |
etv_expandDrawable | reference | / | 伸展箭头的资源 |
etv_collapseDrawable | reference | / | 收缩箭头的资源 |
常用方法
- 设置伸展状态监听:setOnExpandStateChangeListener(OnExpandStateChangeListener listener)
可在控件的四个角上打长条状的标签,常用于促销、状态标记的控件。
- 演示效果
- 使用案例
- 属性表: (LabelView)
BadgeView
- 演示效果
- 使用案例
new BadgeView(getContext()).bindTarget(textView).setBadgeNumber(5)
new BadgeView(getContext()).bindTarget(imageView)
.setBadgeText("PNG")
.setBadgeTextColor(0x00000000)
.setBadgeGravity(Gravity.BOTTOM | Gravity.END)
.setBadgeBackgroundColor(0xff9370DB)
.setBadgeBackground(getResources().getDrawable(R.drawable.shape_round_rect_purple));
常用方法
设置标记的数目:setBadgeNumber(int badgeNum)
设置标记文字:setBadgeText(String badgeText)
设置是否是精准模式[非精准模式为99+]:setExactMode(boolean isExact)
设置标记背景颜色:setBadgeBackgroundColor(int color)
设置边框的样式:stroke(int color, float width, boolean isDpValue)
设置标记背景:setBadgeBackground(Drawable drawable)
设置标记文字颜色:setBadgeTextColor(int color)
设置标记文字:setBadgeTextSize(float size, boolean isSpValue)
设置标记的内间距:setBadgePadding(float padding, boolean isDpValue)
设置对齐方式:setBadgeGravity(int gravity)
设置拖拽监听,不设置的话,无法拖拽:setOnDragStateChangedListener(OnDragStateChangedListener l)
绑定控件:bindTarget(View view)
可根据TextView控件的尺寸大小,自适应字体大小。
- 使用案例
<com.xuexiang.xui.widget.textview.autofit.AutoFitTextView
android:id="@+id/aftv"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:maxLines="2"
android:textSize="30sp" />
属性名 | 类型 | 默认值 | 备注 |
---|---|---|---|
aftv_enable | boolean | true | 自动字体大小适应功能是否开启 |
aftv_minTextSize | dimension | 8sp | 调整的最小的字体大小 |
aftv_precision | float | 0.5 | 调整的精度,精度值越小,越精准,耗时越长 |