ギャラリーから画像を追加したいのですが、プレーヤーの作成を押すと、その画像がリストビューのプレーヤー名の横に追加されます。
現在、私のコードはドローアブルから画像を取得しており、これらの画像は型付き配列内でアクセスされています。
ギャラリーから画像を取得してリストビューに表示するようにコードを変更して実装するにはどうすればよいですか?
どんな助けでも大歓迎です!ありがとうございました
私のカスタムアダプターのコードは次のとおりです。
public class PlayerImageAdapter extends ArrayAdapter<Player> {
private LayoutInflater mInflater;
private ArrayList<Player> players;
private TypedArray mIcons;
private int mViewResourceId;
public PlayerImageAdapter(Context ctx, int viewResourceId,
ArrayList<Player> players, TypedArray icons) {
super(ctx, viewResourceId, players);
mInflater = (LayoutInflater)ctx.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
this.players = players;
mIcons = icons;
mViewResourceId = viewResourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(mViewResourceId, null);
ImageView iv = (ImageView)convertView.findViewById(R.id.playerPic);
iv.setImageDrawable(mIcons.getDrawable(position));
TextView tv = (TextView)convertView.findViewById(R.id.playerName);
tv.setText(this.players.get(position).toString());
return convertView;
}
}
//and my code that calls it:
TypedArray icons = res.obtainTypedArray(R.array.player_pics);
adapter = new PlayerImageAdapter(ctx, R.layout.player_customlist,
dataStore.getPlayers(), icons);
My code that access the gallery is:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
ImageView imageView = (ImageView) findViewById(R.id.imagePlayer);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}