-1

ギャラリーアプリを試していたところ、例@ http://raivoratsep.com/114/android-gallery-tutorial-working-example/を見つけました。ビルドはスムーズですが、エミュレーターでは空白の白い画面が表示されます...ここでは私のコードを投稿してください..publicclassGallaryActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gallary);
    Gallery g = (Gallery) findViewById(R.id.gallery1);
    final Gallary_adapter ga = new Gallary_adapter(this);
    g.setAdapter(ga);

    g.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            Toast.makeText(GallaryActivity.this, "" + position, Toast.LENGTH_SHORT).show();
/*            Intent intent= new Intent("hello");
            long id1 = ga.getItemId(position);

          intent.putExtra("key", id1);

            sendBroadcast(intent);    */
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_gallary, menu);
    return true;
}
}

Gallary_adapterクラスは次のようになります。

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

    private Integer[] mImageIds = {
            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
    };
Gallary_adapter(Context c){
    mContext=c;
    TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery1);
    mGalleryItemBackground = a.getResourceId(
            R.styleable.Gallery1_android_galleryItemBackground, 0);
    a.recycle();
}

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

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

@Override
public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ImageView i = new ImageView(mContext);

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

    return i;
}



}

そして、この役立つリンクは、「R.stylable」ですべてのエラーを削除することがわかりましたhttps://groups.google.com/forum/?fromgroups=#!topic/android-beginners/AJfST9YGADM

これがxmlレイアウトファイルです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:id="@+id/lay">

<Gallery
    android:id="@+id/gallery1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="164dp" />

私を助けてください..ありがとう:)

4

2 に答える 2

0

getCountは、Gallary_adapterクラスでゼロを返します。

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

戻らなければならない、

このようなmImageIdsの長さ、

 @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mImageIds.length;
    }

GetCountは、ギャラリー内のアイテムの数を計算する役割を果たします。

于 2012-09-06T05:48:16.957 に答える
0

UはACTION_PICKインテントを使用してそれを行うこともできます

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                photoPickerIntent.setType("image/*");
                startActivityForResult(photoPickerIntent, 1);
于 2012-09-06T05:51:23.980 に答える