많은 png 이미지가있는 사용자 정의보기가 있습니다 (3 자마다 이미지). 그리기 및 스크롤하는 데 너무 느립니다.Android : 맞춤보기가 너무 느림?
그것은 사용자 정의보기에 대한 내 코드는 다음과 같습니다
public class Textview extends View
{
private String m_szText;
Context ctx;
Paint mTextPaint;
private Canvas canva;
Bitmap b ;
public Textview(Context context)
{
super(context);
ctx = context;
mTextPaint= new Paint();
mTextPaint.setTypeface(m_tTypeface);
mTextPaint.setStyle(Paint.Style.FILL);
}
public void SetText(String newtext) {
m_szText = newtext;
text(newtext);
this.invalidate();
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(text(canvas,m_szText));
}
Canvas text(Canvas canvas,String txt)
{
int left = 400;
int top = 0;
try {
for(int i=0;i<txt.length();i=i+3)
{
String adres = "glyph/" + txt.substring(i, i+3) + ".png";
Bitmap btm = getBitmapFromAsset(adres);
if(left <= 5)
{left = 400;top += btm.getHeight();}
else
left = left - btm.getWidth();
canvas.drawBitmap(btm, left ,top,mTextPaint);
}
} catch (IOException e) {
canvas.drawText(e.toString(), 50, 50, mTextPaint);
}
return canvas;
}
private Bitmap getBitmapFromAsset(String strName) throws IOException
{
AssetManager assetManager = ctx.getAssets();
InputStream istr = assetManager.open(strName);
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}
}
내 사용자 지정보기 속도를 높일 수있는 방법
? 한 번 모든 이미지의 비트 맵을 만들어야한다고 생각합니다. 그러나 어떻게?
미리 감사드립니다.
올바른 방향입니다. 모든 문자의 비트 맵을 한 번 만들고 ondraw에서 매 비트 맵을 그립니다. 또한 정적 멤버의 비트 맵을 사전로드하십시오. – Ronnie
왜 슈퍼에서 드로잉할까요? 어떤 이유? – Ronnie
감사합니다.하지만 어떻게 할 수 있습니까? 나는 안드로이드에서 초보자입니다. 어디에서 그리고 내가 어떻게 그려야하는지 말할 수 있니? –