0

この回答を実装すると、スタック オーバーフローの解決策が見つかります。リンクは以下のとおりです エラーが見つかりました (R.styleable.Gallery1) それは何ですか? それは特定の値ですか、それとも別のフォルダですか? アンドロイド円形ギャラリー? 別のフォルダですか、それとも特定の値ですか? コードはこれです:

public class TestGallery extends Activity {
    /** Called when the activity is first created. */

    private Integer[] mImageIds = { R.drawable.sample_1, R.drawable.sample_2,       
    R.drawable.sample_3, R.drawable.sample_4 }; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Gallery g = (Gallery) findViewById(R.id.gallery); 
        g.setAdapter(new ImageAdapter(this)); 

        g.setOnItemClickListener(new OnItemClickListener() { 
            public void onItemClick(AdapterView parent, View v, int position, long id) { 
                if (position >= mImageIds.length) { 
                    position = position % mImageIds.length; 
                }
                Toast.makeText(TestGallery.this, "" + position, Toast.LENGTH_SHORT).show(); 
            } 
        });
    }

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

        public ImageAdapter(Context c) { 
            mContext = c; 
            TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); 
            mGalleryItemBackground =     
        a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0); 

            a.recycle(); 
        } 

        public int getCount() { 
            return Integer.MAX_VALUE; 
        } 

        public Object getItem(int position) { 
            if (position >= mImageIds.length) { 
                position = position % mImageIds.length; 
            } 
            return position; 
        } 

        public long getItemId(int position) { 
            if (position >= mImageIds.length) { 
                position = position % mImageIds.length; 
            } 
            return position; 
        } 

        public View getView(int position, View convertView, ViewGroup parent) { 
            ImageView i = new ImageView(mContext); 
            if (position >= mImageIds.length) { 
                position = position % mImageIds.length; 
            } 
            i.setImageResource(mImageIds[position]); 
            i.setLayoutParams(new Gallery.LayoutParams(80, 80)); 
            i.setScaleType(ImageView.ScaleType.FIT_XY); 
            i.setBackgroundResource(mGalleryItemBackground); 
            return i; 
         } 

         public int checkPosition(int position) { 
            if (position >= mImageIds.length) { 
                position = position % mImageIds.length; 
            } 
            return position; 
        }
    }
}
4

1 に答える 1

0

ギャラリーに次のコードを設定します

g.setFocusable(true);
g.setFocusableInTouchMode(true);

画像の焦点を合わせます。

それは私のために起きます。

于 2012-07-26T20:47:25.087 に答える