问题描述
我试图通过将此文本的每个字符更改为图像来将文本转换为图像,但我遇到了断字问题,我想让它返回到一个新行
例如:
应该是:
为了
审美
这是我的代码:
MyDynamicDrawableSpan 类:
public class MyDynamicDrawableSpan extends DynamicDrawableSpan {
private final Context mContext;
private final Drawable drawable;
public MyDynamicDrawableSpan(Context context,Drawable drawable) {
mContext = context;
this.drawable = drawable;
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public Drawable getDrawable() {
drawable.setBounds(0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
return drawable;
}
}
必要的方法:
public void insert(String text,int start,int end,Drawable drawable) {
drawable.setBounds(0,drawable.getIntrinsicHeight());
MyDynamicDrawableSpan spannable = new MyDynamicDrawableSpan(getApplicationContext(),drawable);
message.setSpan(spannable,start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
private void insertimageSpan(String str) throws IOException {
addText(generateransomNottext(str));
}
private void addText(SpannableString generateransomNottext) {
textView.setText(generateransomNottext);
}
public SpannableString generateransomNottext(String text) throws IOException {
for (int i = 0; i < text.length(); i++) {
Drawable drawable = getLetterDrawable(getApplicationContext(),"" + text.charat(i));
String str = "" + text.charat(i);
insert(str,i,text.length(),resize(drawable));
}
return message;
}
private Drawable resize(Drawable image) {
int width = image.getIntrinsicWidth() > 40 ? image.getIntrinsicWidth() : min_size;
int height = image.getIntrinsicHeight() > 40 ? image.getIntrinsicHeight() : min_size;
return ImageUtils.bitmap2Drawable(ImageUtils.scale(ImageUtils.drawable2Bitmap(image),width * multiple,height * multiple,false));
}
我尝试将 : android:hyphenationFrequency="none"
放到 TextView
,但它不起作用
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)