【发布时间】:2018-03-10 19:34:34
【问题描述】:
当我从移动相机捕获图像并将其保存到本地存储时,它的质量很好,但是当我在我的 android 应用程序中获取此图像时,图像质量下降很多,甚至无法读取图片中的文本。我如何在应用程序中获取图像在安卓应用中不失画质。
第一个活动
public class MainActivity extends AppCompatActivity {
static final int REQUEST_IMAGE_CAPTURE = 1;
ImageButton imageButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageButton = findViewById(R.id.camera);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(takePictureIntent.resolveActivity(getPackageManager()) != null){
startActivityForResult(takePictureIntent,REQUEST_IMAGE_CAPTURE);
}
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
//ByteArrayOutputStream stream = new ByteArrayOutputStream();
//photo.compress(Bitmap.CompressFormat.PNG,100 , stream);
//byte[] byteArray = stream.toByteArray();
Intent i = new Intent(MainActivity.this,PrintActivity.class);
i.putExtra("image",photo);
startActivity(i);
}
}
}
第二个活动
public class PrintActivity extends AppCompatActivity {
ImageView imageView;
Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_print);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
imageView = findViewById(R.id.imageViewer);
// byte[] byteArray = getIntent().getByteArrayExtra("image");
//bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
bmp = getIntent().getParcelableExtra("image");
imageView.setImageBitmap(bmp);
}
public void btnOnClickPrint(View v){
PrintHelper printHelper = new PrintHelper(this);
printHelper.setScaleMode(PrintHelper.SCALE_MODE_FIT);
printHelper.printBitmap("Image Print",bmp);
}
}
【问题讨论】:
标签: android