レイアウトを画像に変換する必要があるアプリケーションがありますが、問題は、電話の密度によって画像の解像度が異なることです。
スマートフォン A でアプリを使用すると解像度は 480x350 になりますが、スマートフォン B では画像の解像度が 400x280 になります。私の質問は次のとおりです。このレイアウトを画像に変換することは可能ですが、密度に関係なくすべての電話で同じ解像度を使用できますか?
私のコード:
private void salva() {
if(myDir.exists()==false) {
myDir.mkdirs();
}
RL = (RelativeLayout) findViewById(R.id.CardsLay);
RL.setDrawingCacheEnabled(true);
img = RL.getDrawingCache();
Canvas canvas = new Canvas(img);
try {
FileOutputStream out = new FileOutputStream(file);
canvas.drawBitmap(img, 0, 0, null);
img.compress(CompressFormat.JPEG, 80, out);
out.flush();
out.close();
RL.setDrawingCacheEnabled(false);
Toast.makeText(getApplicationContext(), "Image saved on phone", Toast.LENGTH_LONG).show();
}
catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Ops", Toast.LENGTH_SHORT).show();
}
}