我使用的是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(沒有這樣的文件或目錄)
請幫忙嗎?
使用this.getPackageName()並最終添加.png擴展名。 – prakash
我很抱歉,但沒有奏效 –