這篇文章主要為大家詳細(xì)介紹了怎么在Android中使用StaticLayout將文字轉(zhuǎn)化為圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,發(fā)現(xiàn)的小伙伴們可以參考一下:
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)清澗,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由美國Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。
實(shí)例代碼
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText textView; private ImageView imageView; private Button btn; private String content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (EditText) findViewById(R.id.input_text); imageView = (ImageView) findViewById(R.id.input_image); imageView.setVisibility(View.INVISIBLE); btn = (Button) findViewById(R.id.btn_close); btn.setOnClickListener(this); // } public static Bitmap textAsBitmap(String text, float textSize) { TextPaint textPaint = new TextPaint(); // textPaint.setARGB(0x31, 0x31, 0x31, 0); textPaint.setColor(Color.BLACK); textPaint.setAntiAlias(true); textPaint.setTextSize(textSize); StaticLayout layout = new StaticLayout(text, textPaint, 450, Layout.Alignment.ALIGN_NORMAL, 1.3f, 0.0f, true); Bitmap bitmap = Bitmap.createBitmap(layout.getWidth() + 20, layout.getHeight() + 20, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.translate(10, 10); // canvas.drawColor(Color.GRAY); canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);//繪制透明色 layout.draw(canvas); Log.d("textAsBitmap", String.format("1:%d %d", layout.getWidth(), layout.getHeight())); return bitmap; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_close: content = textView.getText().toString().trim(); if (content != null && content != "") { Bitmap bitmap = textAsBitmap(content, 28); imageView.setVisibility(View.VISIBLE); imageView.setBackgroundResource(R.mipmap.liaotian); imageView.setImageBitmap(bitmap); }else{ Toast.makeText(MainActivity.this,"輸入內(nèi)容不能為空",Toast.LENGTH_SHORT); } } } }
布局文件
這跟TextView的效果是一樣的,其實(shí)TextView也是調(diào)用StaticLayout來實(shí)現(xiàn)換行的。
StaticLayout的構(gòu)造函數(shù)有三個(gè):
public StaticLayout(CharSequence source, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad) public StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad) public StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)
android StaticLayout參數(shù)解釋
StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)
1.需要分行的字符串
2.需要分行的字符串從第幾的位置開始
3.需要分行的字符串到哪里結(jié)束
4.畫筆對象
5.layout的寬度,字符串超出寬度時(shí)自動換行。
6.layout的對其方式,有ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE 三種。
7.相對行間距,相對字體大小,1.5f表示行間距為1.5倍的字體高度。
8.在基礎(chǔ)行距上添加多少
實(shí)際行間距等于這兩者的和。
9.參數(shù)未知
10.從什么位置開始省略
11.超過多少開始省略
需要指出的是這個(gè)layout是默認(rèn)畫在Canvas的(0,0)點(diǎn)的,如果需要調(diào)整位置只能在draw之前移Canvas的起始坐標(biāo)canvas.translate(x,y);
以上就是創(chuàng)新互聯(lián)小編為大家收集整理的怎么在Android中使用StaticLayout將文字轉(zhuǎn)化為圖片,如何覺得創(chuàng)新互聯(lián)網(wǎng)站的內(nèi)容還不錯,歡迎將創(chuàng)新互聯(lián)網(wǎng)站推薦給身邊好友。