图像无法显示

时间:2014-05-27 14:29:21

标签: android

我想使用文件路径显示图像。

/mnt/sdcard/DCIM/Camera/IMG_20140524_150944.jpg

这是布局文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
     <ImageView
        android:id="@+id/item_single_new"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10dip"
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip"/>

</LinearLayout>

这是我正在使用的代码。

package com.bridge.bridgeinventory;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.Toast;
public class SingleImage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.single_image);
     ImageView image = (ImageView)
            findViewById(R.id.item_single_new);
    image.setAdjustViewBounds(true);
    image.setMaxHeight(100);
    image.setMaxWidth(100);
    image.setScaleType(ImageView.ScaleType.CENTER_CROP);
    Intent  i=getIntent();
     String myimage =i.getStringExtra("photo").trim();  
    Log.e("image path", myimage);
     Bitmap m= BitmapFactory.decodeFile(myimage);
     if(m==null)
     {
         Toast.makeText(getApplicationContext(), "Image was deleted", Toast.LENGTH_LONG).show();
     }
     image.setImageBitmap(m);

}


}

意图extral打印正确(如上所示),但图像不显示。

我只看到黑色补丁而不是图像。

我缺少什么简单的东西?

这应该是简单的事情,但它完全打败了我!

罗纳德

这就是我如何获得存储在db中的路径。

public void GetPhoto(View v)
{
    Intent picintent= new Intent(Intent.ACTION_PICK);
    picintent.setType("image/*");
    startActivityForResult(picintent,GET_PHOTO);    

}
@Override
protected void onActivityResult(int requestCode, int resultCode,
        Intent resultData) {
    super.onActivityResult(requestCode, resultCode, resultData);
        if(requestCode==GET_PHOTO){
        if (resultData != null) {

        String[] projection = { MediaStore.Images.Media.DATA };
                @SuppressWarnings("deprecation")
                Cursor cursor = managedQuery(
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                        projection, null, null, null);
                int column_index_data = cursor
                        .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToLast();

                String imagePath = cursor.getString(column_index_data);
                cursor.close();             
                bridgephoto=imagePath;
                Log.e("imagepath", bridgephoto);
        }
        }
            }

bridgephoto变量是一个类级变量 从意图中获得后,我用它来设置照片属性,如下所示。

bridge.setBridgePhoto(bridgephoto);

然后我有一个显示桥梁的列表视图。它有一个上下文菜单,可以显示桥照片。

以下是照片菜单项

的代码
@Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
    // TODO Auto-generated method stub
     int menuItemIndex = item.getItemId();
     String menuItemName =menuitems[menuItemIndex];
     final AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item
                .getMenuInfo(); 
     final int pos = menuInfo.position;
if(menuItemName=="Photo")
{
    Bridge b= (Bridge)ba.getItem(pos);
    String image=b.getBridgePhoto();
    /// put it in an intent!
    Intent i= new Intent(Bridges.this,SingleImage.class);
    i.putExtra("photo",image);
    startActivity(i);


}
    return super.onMenuItemSelected(featureId, item);
}

传递给SingleImage活动的是字符串extral。

但我已经使用Log.e来测试字符串(图像路径),看起来是正确的。

0 个答案:

没有答案