社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
if (s.toString().trim().equals(".")) {
mMoneyEdit.setText("0.");
mMoneyEdit.setSelection(2);
return;
}
//限制输入两位小时
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 2) {
CharSequence input = s.toString().subSequence(0,
s.toString().indexOf(".") + 2 + 1);
mMoneyEdit.setText(input);
mMoneyEdit.setSelection(input.length());
}
}
//对前面两位做限制,若果已0开头,只能是0.
if (s.toString().startsWith("0") && s.toString().trim().length() > 1) {
if (!s.toString().substring(1, 2).equals(".")) {
mMoneyEdit.setText(s.subSequence(0, 1));
mMoneyEdit.setSelection(1);
return;
}
}
//显示输入的值小于金额
double money = Double.parseDouble(s.toString().trim());
if (money > RentHelper.Convert2DoubleFee(mBalance)) {
mMoneyEdit.setText(s.subSequence(0, s.length() - 1));
mMoneyEdit.setSelection(s.length() - 1);
return;
}
} catch (Exception e) {
Log.e("TAG",e.getMessage());
}
}
RequestOptions options = new RequestOptions().diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true);
Glide.with(this).load(filePath).apply(options).into(mImageView);
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/op_hand_record_tv"
style="@style/order_operation_tv"
android:drawableLeft="@mipmap/ic_car_64"
android:text="交接记录"
android:maxLines="1"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="10sp"
app:autoSizeTextType="uniform" />
<!--订单操作textView的样式-->
<style name="order_operation_tv">
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@color/com_tv_color</item>
<item name="android:textSize">@dimen/size_small</item>
<item name="android:padding">4dp</item>
<item name="android:maxLines">1</item>
<item name="android:gravity">center</item>
<item name="android:drawablePadding">3dp</item>
<item name="autoSizeMaxTextSize">14sp</item>
<item name="autoSizeMinTextSize">10sp</item>
<item name="autoSizeTextType">uniform</item>
</style>
<ImageView
android:id="@+id/qr_code_iv"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/margin_normal"
android:src="@mipmap/ic_launcher_round"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/qr_tip_tv"
app:layout_constraintWidth_percent="0.5" />
图片居中显示,约束宽度为屏幕宽度的一半,高宽比:1:1
step1.新建一个main_menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_msg"
android:orderInCategory="1"
android:title="消息"
app:actionProviderClass="txj.com.carmgr.ui.widget.BadgeActionProvider"
app:showAsAction="always" />
</menu>
step 2: 实现自定义BadgeActionProvider
/**
* 自定义menu的视图
*/
public class BadgeActionProvider extends ActionProvider {
private ImageView mIconIv;
private TextView mCountTv;
private Context context;
private onBadgeMenuClickListener onClickListener;
public BadgeActionProvider(Context context) {
super(context);
this.context = context;
}
@Override
public View onCreateActionView() {
int toolbarHeight = YUtil.INSTANCE.getToolbarHeight(context);
//设置自定义布局的宽高为Toolbar的高度
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(toolbarHeight, toolbarHeight);
View view = LayoutInflater.from(context)
.inflate(R.layout.menu_badge_provider, null, false);
view.setLayoutParams(layoutParams);
mIconIv = view.findViewById(R.id.icon_iv);
mCountTv = view.findViewById(R.id.count_tv);
view.setOnClickListener(onViewClickListener);
return view;
}
// 点击处理。
private View.OnClickListener onViewClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onClickListener != null)
onClickListener.onClick();
}
};
// 外部设置监听。
public void setOnClickListener(onBadgeMenuClickListener onClickListener) {
this.onClickListener = onClickListener;
}
// 设置图标。
public void setIcon(@DrawableRes int icon) {
mIconIv.setImageResource(icon);
}
// 设置显示的数字。
public void setBadge(long count) {
if (count > 0) {
mCountTv.setText(Long.toString(count));
mCountTv.setVisibility(View.VISIBLE);
} else {
mCountTv.setVisibility(View.GONE);
}
}
// 设置显示的文字。
public void setText(CharSequence i) {
mCountTv.setText(i);
}
public interface onBadgeMenuClickListener {
void onClick();
}
}
step 3: 实现布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?actionBarItemBackground">
<ImageView
android:id="@+id/icon_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="14dp"
app:srcCompat="@drawable/ic_message_white_24dp" />
<TextView
android:id="@+id/count_tv"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginTop="2dp"
android:layout_marginRight="8dp"
android:background="@mipmap/ic_point_red"
android:gravity="center"
android:text="18"
android:textColor="@android:color/white"
android:textSize="12sp"
android:visibility="gone" />
</RelativeLayout>
step 4: 在Fragment或者Activity的onCreateOptionsMenu()中使用
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
inflater?.inflate(R.menu.main_menu, menu)
val menuItem = menu?.findItem(R.id.menu_msg)
mActionProvider = MenuItemCompat.getActionProvider(menuItem) as BadgeActionProvider
mActionProvider?.setOnClickListener {
val direction = MainFragmentDirections.actionMainFragToMessageFrag()
Navigation.findNavController(mBinding.root).navigate(direction)
}// 设置点击监听。
//延迟2秒刷新消息数
GlobalScope.launch(Dispatchers.Main) {
delay(2000)
mActionProvider?.let {
val count = YUtil.getUnReadmsgCount()
it.setBadge(count)
}
}
super.onCreateOptionsMenu(menu, inflater)
}
GradientDrawable dg = new GradientDrawable();
dg.setCornerRadius(DimenUtil.dip2px(this, 4));
dg.setColor(ColorUtils.getColor(R.color.white));
getView(R.id.fl_wheel_bg).setBackground(dg);
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!