2012-03-15 73 views
-1

我遵循hello gallery教程,但不起作用。它显示空白屏幕Android Hello Gallery不支持

我已经将示例图像上传到可绘制文件夹中。

这里是main.xml中代码

<?xml version="1.0" encoding="utf-8"?> 
<Gallery xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/gallery" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" /> 

attr.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<declare-styleable name="HelloGallery"> 
    <attr name="android:galleryItemBackground" /> 
</declare-styleable> 
</resources> 

活动类:

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

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

    gallery.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 

      Toast.makeText(GalleryActivity.this, "" + position, 
        Toast.LENGTH_SHORT).show(); 
     } 

    }); 
    } 
} 

ImageAdapter类:

public class ImageAdapter extends BaseAdapter { 

int mGalleryItemBackground; 
Context mContext; 

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

public ImageAdapter(Context context) { 

    mContext = context; 

    TypedArray attr = mContext 
      .obtainStyledAttributes(R.styleable.HelloGallery); 
    mGalleryItemBackground = attr.getResourceId(
      R.styleable.HelloGallery_android_galleryItemBackground, 0); 
    attr.recycle(); 

    } 

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

    ImageView imageView = new ImageView(mContext); 
    imageView.setImageResource(mImageIds[position]); 
    imageView.setLayoutParams(new Gallery.LayoutParams(150, 100)); 
    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
    imageView.setBackgroundResource(mGalleryItemBackground); 

    return imageView; 
    } 
} 

当我调试的代码,我注意到,该方法getView从未执行过。 请求帮助。

感谢

回答

0

getCount()方法在Adapter类中?在这里发布的代码。您没有正确复制示例代码。请先做。

+0

谢谢。有用。我认为这种方法并不重要。 – user1134475 2012-03-16 01:36:50

1

你需要在你ImageAdapter重写这些方法:

public int getCount() { 
    // TODO Auto-generated method stub 
    return 0; 
} 

public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

请检查。