1

なぜ私の画像がCoverflowに表示されないのか疑問に思いました。何か案は?これは、Androidギャラリーアプリに基づくCoverFlow用です。ソースとしてR.drawableから画像を取得していました。SDカードから画像を取り出すように変更しました。作者が推奨するコードの使い方がわかりません。

これは、外部ソースからコードを取得する方法に関する元の作成者の例です。

            //Use this code if you want to load from resources
         ImageView i = new ImageView(mContext);
         i.setImageResource(mImageIds[position]);
         i.setLayoutParams(new CoverFlow.LayoutParams(130, 130));
         i.setScaleType(ImageView.ScaleType.MATRIX);            
         return i;

そして、これが私がそれを試した方法です:最初にR.drawable参照のコードをコメントアウトします。

        public class ImageAdapter extends BaseAdapter {
      int mGalleryItemBackground;
      private Context mContext;

      private FileInputStream fis;


      private Integer[] mImageIds = {

     //     R.drawable.pic01,
       //   R.drawable.pic02,
        //    R.drawable.pic03,
        //    R.drawable.pic04,
        //    R.drawable.pic05,
        //    R.drawable.pic06,
        //    R.drawable.pic07,
        //    R.drawable.pic08,
        //    R.drawable.pic09
      };



    private ImageView[] mImages;


           public View getView(int position, View convertView, ViewGroup parent) {

        ImageView i = new ImageView(mContext.getApplicationContext());
            imagecursor.moveToPosition(position);
            int id = imagecursor.getInt(image_column_index);
            i.setImageURIUri.withAppendedPathMediaStore.Images.Media.EXTERNAL_CONTENT_URI, ""+ id));
            i.setLayoutParams(new CoverFlow.LayoutParams(130, 130));
            i.setScaleType(ImageView.ScaleType.MATRIX);         

            return i;

        //return mImages[position];
    }
4

1 に答える 1

2

元のコードを使用する必要がありますが、次のようになります。

i.setImageBitmap(BitmapFactory.decodeFile(PATH_TO_YOUR_IMAGE_FILE_ON_SDCARD));

画像ファイルにimage_1.png、image_2.png ...という番号を付けて名前を付けてから、次を使用できます。

i.setImageBitmap(BitmapFactory.decodeFile("image_" + position));

または、すべての画像を配列にプリデコードできます...

于 2012-09-25T19:50:07.753 に答える