2013-06-03 45 views
0

我已经工作了一个星期,我看不出为什么我无法获取缩略图。我只需要它,而不是实际的图像,并且我知道通过Mediastore.captureimage很方便地将它传递给意图。 我的代码:如何获取意图内容(thumbnail from mediastore.ACTION_IMAGE_CAPTURE)

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.view.View; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 
    private ImageView image; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    image = (ImageView) findViewById(R.id.image); 
    } 

    public void vignette(View vue) { 
     Intent intention = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(intention, 1); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1) { 
    Uri imageUri = null; 
    if (data != null) { 
    if (data.hasExtra("data")) { 
      Bitmap vignette = (Bitmap) data.getExtras().get("data"); 
      image.setImageBitmap(vignette); 
    } 
    } 
    } 
} 
} 

事实上,数据不为空, 但hasExtra( “数据”)给出了空。 尽管我可以看到 Intent {act = inline-data dat = content:// media/external/images/media/8767(has extras)} ......有没有办法获得额外的!

回答

0

中序从位图得到位在onActivityResult功能

Uri imageUri = data.getData(); 
     Bitmap vignette = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 

调用这个这会给位图

您可以随时调整位图到您的要求

vignette =Bitmap.createScaledBitmap(vignette ,100,100, true); 

      image.setImageBitmap(vignette); 

这将创建一个100 * 100的位图