android 응용 프로그램에서 텍스트를 이미지화하는 코드가 있으며 텍스트를 이미지로 변환하고 SD 카드의 로컬 위치에 저장하는 중입니다. 내가 직면 한 문제는 전체 텍스트를 이미지로 변환하지 않는다는 것입니다. 다음은 텍스트 뷰에 제공하는 텍스트입니다. "이것은 ashdf asdhfj sdhkfh shd jshd hsdhfsdjkhfksdjfhsdlhfksldhfklh shdkfjhsdkj hfsdjk kdjhfsk djhfskldh shdjkfhk sjhdfkh"입니다. 여기 이미지로 변환 것입니다 여기에Android Text to Image 문제
내 코드
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 60);
tv.setLayoutParams(layoutParams);
tv.setText("this is t ashdf asdhfj sdhkfh shd jshd hsdhfsdjkhfksdjfhsdlhfksldhfklh shdkfjhsdkj hfsdjk kdjhfsk djhfskldh shdjkfhk sjhdfkh ");
tv.setTextColor(Color.BLACK);
tv.setBackgroundColor(Color.WHITE);
Bitmap testB;
timer = new Timer();
timer.schedule(new TickerTask(), 1000,25);
testB = Bitmap.createBitmap(tv.getText().length(), 20, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(testB);
tv.layout(0, 0, 800, 30);
tv.draw(c);
iv = (ImageView) findViewById(R.id.menuIcon);
x=40;
iv.setPadding(x, 0, 0, 0);
iv.setLayoutParams(layoutParams);
iv.setBackgroundColor(Color.GREEN);
iv.setImageBitmap(testB);
iv.setDrawingCacheEnabled(true);
BitmapDrawable drawable = (BitmapDrawable) iv.getDrawable();
Bitmap bitmap = drawable.getBitmap();
//Bitmap bitmap = testB;
File sdCardDirectory = Environment.getExternalStorageDirectory();
File image = new File(sdCardDirectory, "test.png");
boolean success = false;
// Encode the file as a PNG image.
FileOutputStream outStream;
try {
outStream = new FileOutputStream(image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
/* 100 to keep full quality of the image */
outStream.flush();
outStream.close();
success = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (success) {
Toast.makeText(getApplicationContext(), "Image saved with success"+tv.getText().length(),
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),
"Error during image saving", Toast.LENGTH_LONG).show();
}
문제가 표시되지 않습니다. 문제는 이미지의 전체 크기를 커버하고 이미지에 저장해야하는 크기입니다. testB = Bitmap.createBitmap (tv.getText(). length(), 20, Bitmap.Config.ARGB_8888); 이것은 텍스트 크기와 똑같은 생성 된 이미지 크기를 어떻게 지정해야하는지에 대한 주된 문제입니다. –
보기 (이 경우 TextView)에서 이미지를 가져 오려고합니다. 이 뷰에 내용이 모두 들어갈 공간이 충분하지 않으면 촬영할 이미지의 공간이 표시됩니다. TextView를 확대해야하므로 모든 내용을 저장할 수 있습니다. –
텍스트가 TextView보다 큰 경우는 어떻습니까? 전체 텍스트를 이미지로 변환해야합니다. 캔버스에 직접 텍스트를 제공 할 수있는 방법이 있나요? –