解析图像文件的路径

时间:2013-08-09 16:39:56

标签: java android

我有一个imageView我试图根据用户从其图库中选择的图像的文件路径来设置图像。我将路径放入数据库,然后将该路径传递到另一个活动以设置要显示的imageView。该路径以所有步骤返回

/external/images/media/23

在我通过路径之前,我已经使用多个toast来检查活动中的路径,在通过被调用方法接收到路径之后,所以我知道路径正在从活动正确地发送到活动。但是,当我使用以下代码设置imageView时,没有任何内容出现。

File imgFile;
//Bitmap moviePic;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_movie_view);


    Bundle income = getIntent().getExtras();

    if(income != null)
    {
        mTitle = income.getString("title");
        mYear = income.getString("year");
        id = income.getLong("id");
        mPath = income.getString("path");

    }

    Toast.makeText(this, "path: " + mPath, Toast.LENGTH_SHORT).show();

    imV = (ImageView) findViewById(R.id.movieImage);
    //moviePic = BitmapFactory.decodeFile(mPath);
    imgFile = new File(mPath);

    imV.setImageURI(Uri.fromFile(imgFile));
    //imV.setImageResource(R.drawable.top);

    mVT = (TextView) findViewById(R.id.movieViewTitle);
    mVT.setText(mTitle);

    mVY = (TextView) findViewById(R.id.movieViewYear);
    mVY.setText(mYear);

    delete = (Button) findViewById(R.id.deleteMovie);
    delete.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent deleting = new Intent();
            deleting.putExtra("Id", id);
            setResult(RESULT_OK, deleting);
            finish();
        }

    });
}

我的猜测是我对文件路径做错了。下面是我用来解决路径的代码。

imgV.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent addImage = new   
Intent(android.content.Intent.ACTION_PICK);
            addImage.setType("image/*");

            startActivityForResult(addImage, 1);
        }
    });


}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
    super.onActivityResult(requestCode, resultCode, intent);

    switch(requestCode)
    {
    case 1:
        if(resultCode == RESULT_OK)
        {
            Uri image = intent.getData();
            imgV.setImageURI(image);
            moviePath = image.getPath();
            Toast.makeText(this, moviePath, Toast.LENGTH_LONG).show();
        }
    }
}

}

要查找我使用Android模拟器的图像文件,浏览谷歌图像并下载一两个。当我查看DDMS时,它将它们放在mnt \ sdcar \ download \文件夹中,这明显不同于它们使用image.getPath()方法解析的路径。还有另一种方法我应该解决这条路吗?或者模拟器文件路径的工作方式是否缺少一些东西。

0 个答案:

没有答案