SuperTextView是一个非常强大的View,通过自由的属性设置,可以配置出各式各样的布局效果
。SuperButton拥有shape文件的大部分属性,无需配置XML文件就可以轻松实现shape的效果

  • 演示效果

TextView - 图2     TextView - 图4

  • 使用案例
  • 属性表: (SuperTextView)

MarqueeView

  • 属性表: (MarqueeView)
属性名类型默认值备注
mq_intervalinteger2500ms翻页的间隔
mq_animDurationinteger500ms动画的间隔
mq_animInreferenceR.anim.marquee_bottom_in进入动画的样式资源
mq_animOutreferenceR.anim.marquee_top_out退出动画的样式资源

常用方法

  • 设置滚动数据的工厂:setMarqueeFactory(MarqueeFactory factory)
  • 设置动画执行时间:setAnimDuration(int animDuration)
  • 设置翻页时间间隔:setInterval(int interval)
  • 开始滚动:startFlipping()
  • 停止滚动:stopFlipping()

滚动字幕,支持滚动数据的动态添加、更新、修改和销毁,匀速滚动。

  • 演示效果

  • 使用案例
  1. android:id="@+id/tv_marquee"
  2. android:layout_width="match_parent"
  3. android:layout_height="40dp"
  4. android:layout_marginTop="20dp"
  5. android:background="#88dddddd"
  6. app:mtv_isAutoFit="true"
  7. app:mtv_isAutoDisplay="true"/>
  8. mTvMarquee.setOnMarqueeListener(new MarqueeTextView.OnMarqueeListener() {
  9. @Override
  10. public DisplayEntity onStartMarquee(DisplayEntity displayMsg, int index) {
  11. if (displayMsg.toString().equals("离离原上草,一岁一枯荣。")) {
  12. return null;
  13. } else {
  14. ToastUtils.toast("开始滚动:" + displayMsg.toString());
  15. return displayMsg;
  16. }
  17. }
  18. @Override
  19. public List<DisplayEntity> onMarqueeFinished(List<DisplayEntity> displayDatas) {
  20. ToastUtils.toast("一轮滚动完毕!");
  21. return displayDatas;
  22. });
  23. mTvMarquee.startSimpleRoll(datas);
  • 属性表: (MarqueeTextView)

常用方法

  • 开始滚动
  1. startSimpleRoll(List<String> list);
  2. startRoll();
  • 滚动数据添加设置
  • 滚动数据的销毁
  1. removeDisplayString(String displayString)
  2. removeDisplayEntity(DisplayEntity displayEntity)
  • 设置滚动的速度:setSpeed(int speed)

  • 判断是否在滚动:isRolling()

  • 获取显示消息的数量:getDisplaySize()

  • 根据index获取滚动的消息实体:getDisplayItem(int index)

ExpandableTextView

  • 演示效果

TextView - 图6

  • 使用案例
  1. <com.xuexiang.xui.widget.textview.ExpandableTextView
  2. android:id="@+id/expand_text_view"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:padding="10dp"
  6. app:etv_maxCollapsedLines="5">
  7. <TextView
  8. android:id="@id/expandable_text"
  9. style="@style/TextStyle.Content"
  10. android:layout_width="match_parent"
  11. android:gravity="center_vertical"
  12. android:singleLine ="false"/>
  13. <ImageButton
  14. android:id="@id/expand_collapse"
  15. android:layout_width="wrap_content"
  16. android:layout_height="wrap_content"
  17. android:padding="?attr/xui_config_content_spacing_vertical"
  18. android:layout_gravity="right|bottom"
  19. android:background="@android:color/transparent"/>
  20. </com.xuexiang.xui.widget.textview.ExpandableTextView>
  21. mExpandableTextView.setText(getString(R.string.etv_content_demo1));
  22. @Override
  23. public void onExpandStateChanged(TextView textView, boolean isExpanded) {
  24. ToastUtils.toast(isExpanded ? "Expanded" : "Collapsed");
  25. }
  26. });
  • 属性表: (ExpandableTextView)
属性名类型默认值备注
etv_maxCollapsedLinesinteger8最大收缩展示的行数
etv_animDurationinteger300ms动画持续的间隔
etv_animAlphaStartfloat0.7f动画开始时的透明度
etv_expandDrawablereference/伸展箭头的资源
etv_collapseDrawablereference/收缩箭头的资源

常用方法

  • 设置伸展状态监听:setOnExpandStateChangeListener(OnExpandStateChangeListener listener)

可在控件的四个角上打长条状的标签,常用于促销、状态标记的控件。

  • 演示效果

  • 使用案例
  • 属性表: (LabelView)

BadgeView

  • 演示效果

TextView - 图8

  • 使用案例
  1. new BadgeView(getContext()).bindTarget(textView).setBadgeNumber(5)
  2. new BadgeView(getContext()).bindTarget(imageView)
  3. .setBadgeText("PNG")
  4. .setBadgeTextColor(0x00000000)
  5. .setBadgeGravity(Gravity.BOTTOM | Gravity.END)
  6. .setBadgeBackgroundColor(0xff9370DB)
  7. .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控件的尺寸大小,自适应字体大小。

  • 使用案例
  1. <com.xuexiang.xui.widget.textview.autofit.AutoFitTextView
  2. android:id="@+id/aftv"
  3. android:layout_width="match_parent"
  4. android:layout_height="80dp"
  5. android:layout_marginTop="10dp"
  6. android:gravity="center_vertical"
  7. android:maxLines="2"
  8. android:textSize="30sp" />
属性名类型默认值备注
aftv_enablebooleantrue自动字体大小适应功能是否开启
aftv_minTextSizedimension8sp调整的最小的字体大小
aftv_precisionfloat0.5调整的精度,精度值越小,越精准,耗时越长