2014-06-26 38 views
3

我使用的是Github的GestureImageView項目,我在我的可繪製文件夾中有幾個圖像:page1.jpg,page2.jpg,page3.jpg,....... ..page30.jpg。 我有一個名爲pagenumber的變量,當我點擊一個按鈕時,這個變量會增加,所以我想在GestureImageView中加載圖像。下面是我在主類代碼:android gestureimageview Image Uri

pagenumber++; 

GestureImageView view1 = (GestureImageView) findViewById(R.id.image); 

String uriPath = "android.resource://"+getPackageName()+"/drawable/page"+String.valueOf(pagenumber); 

Uri uri = Uri.parse(uriPath); 

view1 .setImageURI(uri); 

在GestureImageView.java代碼:

@Override 
public void setImageURI(Uri mUri) { 
    if ("content".equals(mUri.getScheme())) { 
     try { 
      String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION}; 

      Cursor cur = getContext().getContentResolver().query(mUri, orientationColumn, null, null, null); 

      if (cur != null && cur.moveToFirst()) { 
       imageOrientation = cur.getInt(cur.getColumnIndex(orientationColumn[0])); 
      } 

      InputStream in = null; 

      try { 
       in = getContext().getContentResolver().openInputStream(mUri); 
       Bitmap bmp = BitmapFactory.decodeStream(in); 

       if(imageOrientation != 0) { 
        Matrix m = new Matrix(); 
        m.postRotate(imageOrientation); 
        Bitmap rotated = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), m, true); 
        bmp.recycle(); 
        setImageDrawable(new BitmapDrawable(getResources(), rotated)); 
       } 
       else { 
        setImageDrawable(new BitmapDrawable(getResources(), bmp)); 
       } 
      } 
      finally { 
       if(in != null) { 
        in.close(); 
       } 

       if(cur != null) { 
        cur.close(); 
       } 
      } 
     } 
     catch (Exception e) { 
      Log.w("GestureImageView", "Unable to open content: " + mUri, e); 
     } 
    } 
    else { 
     setImageDrawable(Drawable.createFromPath(mUri.toString())); 
    } 

    if (drawable == null) { 
     Log.e("GestureImageView", "resolveUri failed on bad bitmap uri: " + mUri); 
     // Don't try again. 
     mUri = null; 
    } 
} 

嗯,我有在GestureImageView一個空的圖像,它不加載。 logcat說無法解碼流:java.io.FileNotFoundException:/android.resource:/com.example.tests/drawable/page3:打開失敗:ENOENT(沒有這樣的文件或目錄)

請幫忙嗎?

+0

使用this.getPackageName()並最終添加.png擴展名。 – prakash

+0

我很抱歉,但沒有奏效 –

回答