基本信息
源码名称:android 印章 控件
源码大小:0.25M
文件格式:.zip
开发语言:Java
更新时间:2020-10-18
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 5 元×
微信扫码支付:5 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
自定义控件实现印章
自定义印章,支持自定义
public class SealView extends TextView {
private int mLeftSize = 24;
private int mRightSize = 50;
private String mRightString;
private String mLeftString;
private float mR = 350f;
public SealView(Context context) {
super(context);
}
public SealView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.sealstyle);
setGravity(Gravity.CENTER);
setTextColor(getResources().getColor(android.R.color.holo_red_light));
setBackground(getResources().getDrawable(R.drawable.list_icon_bzj));
setRotationSeal(mR);
int count = typedArray.getIndexCount();
for (int i = 0; i < count; i ) {
int index = typedArray.getIndex(i);
switch (index) {
case R.styleable.sealstyle_left_text:
mLeftString = typedArray.getString(index);
break;
case R.styleable.sealstyle_right_text:
mRightString = typedArray.getString(index);
break;
case R.styleable.sealstyle_left_text_size:
mLeftSize = typedArray.getDimensionPixelSize(index, 12);
break;
case R.styleable.sealstyle_right_text_size:
mRightSize = typedArray.getDimensionPixelSize(index, 15);
break;
}
}
typedArray.recycle();
reDraw();
}
private void setRotationSeal(float r) {
ObjectAnimator rotation = ObjectAnimator.ofFloat(this, "rotation", 0f, r);
rotation.setDuration(0);
rotation.start();
}
private void reDraw() {
StringBuilder sb = new StringBuilder();
int leftIndex = 0;
if (!TextUtils.isEmpty(mLeftString)) {
leftIndex = mLeftString.length();
sb.append(mLeftString);
}
int rightIndex = 0;
if (!TextUtils.isEmpty(mRightString)) {
rightIndex = mRightString.length();
sb.append(mRightString);
}
setText(sb);
Spannable span = new SpannableString(getText());
span.setSpan(new AbsoluteSizeSpan(mRightSize), leftIndex, getText().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new AbsoluteSizeSpan(mLeftSize), 0, leftIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
setText(span);
}
public void setRightString(String rightString) {
mRightString = rightString;
reDraw();
}
public void setLeftString(String leftString) {
mLeftString = leftString;
reDraw();
}
public void setRightSize(int rightSize) {
mRightSize = rightSize;
reDraw();
}
public void setLeftSize(int leftSize) {
mLeftSize = leftSize;
reDraw();
}
}