Android 为什么应用程序性能变慢??当gallery中的相机图像已存储在imageview中时
由于摄像头图像存储在imageview中,应用程序性能降低 有时应用程序关闭。如何修复它Android 为什么应用程序性能变慢??当gallery中的相机图像已存储在imageview中时,android,performance,imageview,Android,Performance,Imageview,由于摄像头图像存储在imageview中,应用程序性能降低 有时应用程序关闭。如何修复它 public void onClick(View v) { if(v.getId() == camerabutton.getId()){ addImageView(); } } private void addImageView(){ Intent intent = new Intent(Intent.ACTION_
public void onClick(View v) {
if(v.getId() == camerabutton.getId()){
addImageView();
}
}
private void addImageView(){
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(MediaStore.Images.Media.CONTENT_TYPE);
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQ_CODE_SELECT_IMAGE);
}
@Override
protected void onActivityResult(int requestCode , int resultCode , Intent data) {
if(requestCode == 100){
if(resultCode == Activity.RESULT_OK){
ImageView imageView = new ImageView(this);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(postArea.getWidth(), ViewGroup.LayoutParams.WRAP_CONTENT);
imageView.setLayoutParams(params);
//params.width = postArea.getWidth();
imageView.setLayoutParams(params);
Uri imgUri = data.getData();
imageView.setImageURI(imgUri);
postArea.addView(imageView);
}
}
}
}
postArea是LinerLayout~此代码是将imageView添加到布局将uri转换为位图,并将位图缩放到所需大小或imageView的大小。这还将减少位图的大小以及用于加载位图的内存。试试下面的方法
@Override
protected void onActivityResult(int requestCode , int resultCode , Intent data) {
if(requestCode == 100){
if(resultCode == Activity.RESULT_OK){
ImageView imageView = new ImageView(this);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(postArea.getWidth(), ViewGroup.LayoutParams.WRAP_CONTENT);
imageView.setLayoutParams(params);
//params.width = postArea.getWidth();
imageView.setLayoutParams(params);
Uri imgUri = data.getData();
//Convert uri to bitmap and reduce its size
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imgUri);
//scale bitmap to the required size of imageview
//this way it memory usage will also be less
//set resized bitmap to imageview
bitmap = Bitmap.createScaledBitmap(bitmap, imageview_width, imageview_height, false));
imageView.setImageBitmap(bitmap);
postArea.addView(imageView);
}
}
}
您还可以压缩位图以减小大小。您在尝试加载高分辨率图像时,很可能内存不足