0

電話のSDカードから画像を読み取ってGridViewに配置し、最終的に画像の1つをクリックして選択し、最初にフルサイズで表示できるようにする方法に関する情報を探しています。

簡単に理解できるチュートリアルまたは例を探しています。検索しましたが、このようなチュートリアルを見つけるのは難しいと思います。適切なキーワードを知らないからかもしれません。Android Developer Web ページの GridView の例に従っていますが、続きを探しています。

ここまでで、MediaStore コンテンツ プロバイダー、クエリ、およびカーソルを操作する必要があることを学びました。

誰かが先に進むための情報や方向性を教えてくれれば幸いです。ありがとう!

4

2 に答える 2

0

イメージビューをグリッド ビューに追加する簡単な例を次に示します。

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

    GridView gridView = (GridView) findViewById(R.id.gridview);
    gridView.setAdapter(new ImageAdapter(this));

    gridView.setOnItemClickListener(new OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> parent, 
        View v, int position, long id) 
        {                
            Toast.makeText(getBaseContext(), 
                    "pic" + (position + 1) + " selected", 
                    Toast.LENGTH_SHORT).show();
        }
    });        
}

public class ImageAdapter extends BaseAdapter 
{
    private Context context;

    public ImageAdapter(Context c) 
    {
        context = c;
    }

    //---returns the number of images---
    public int getCount() {
        return imageIDs.length;
    }

    //---returns the ID of an item--- 
    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    //---returns an ImageView view---
    public View getView(int position, View convertView, ViewGroup parent) 
    {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5, 5, 5, 5);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(...);
        return imageView;
    }
}    

イメージファイルをイメージビューに入れる方法は次のとおりです。

ソリューション1:

ImageView i = new ImageView(mContext);  

Bitmap bm = BitmapFactory.decodeFile(...);  
i.setImageBitmap(bm);  

i.setLayoutParams(new Gallery.LayoutParams(150, 100));  
i.setScaleType(ImageView.ScaleType.FIT_XY);  
i.setBackgroundResource(...); 

解決策 2:

ImageView im = new ImageView(mContext);   
im.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+id)); 
于 2013-02-15T10:19:44.077 に答える
0

これは、グリッド ビューに関する初心者向けの優れたチュートリアルです。そのチュートリアルでは、画像は drawable フォルダーに配置されます。メモリカードから画像を読みたいので、それらの画像のパスを見つけて、それらをグリッドビューのimageViewに提供するだけです。それについて助けが必要な場合はお知らせください。

于 2013-02-15T11:33:21.413 に答える