私の目標は「画像をアップロード」をクリックして、プロフィール上のインスタントグラムフィードに似たグリッドビューに表示させることです(スクロールしているフィード、グリッドフィード)。正直なところ私は非常に迷っていて、単にオンラインのサイトで見つけたさまざまな方法を試してきましたが、実際には何も効果がありませんでした。ギャラリーから写真をグリッドビューに追加したい(Androidスタジオ)
MainActivity:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final int RESULT_LOAD_IMAGE = 1;
private ArrayList<Image> items = new ArrayList<Image>();
ImageView uploadedImage;
Button bUploadImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bUploadImage = (Button)findViewById(R.id.bUploadImage);
bUploadImage.setOnClickListener(this);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this,R.id.bUploadImage,items));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(MainActivity.this, "" + position,
Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.bUploadImage:
Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && data != null){
Uri selectedImage = data.getData();
uploadedImage.setImageURI(selectedImage);
Image i = new Image();
i.setURI(selectedImage);
items.add(i);
}
}
}
ImageAdapter:
public class ImageAdapter extends ArrayAdapter<Image> {
private Context mContext;
private ArrayList<Image> items;
public ImageAdapter(Context context, int textViewResourceId, ArrayList<Image> items) {
super(context, textViewResourceId, items);
mContext = context;
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
if (position == 0)
imageView.setImageURI(items.get(position).getURI());
return imageView;
}
}
Imageクラス:私はギャラリーからグリッド上の画像を表示する多くの方法が、どれも使用して画像を見てきました
public class Image {
private Uri imgURI;
public Uri getURI(){
return imgURI;
}
public void setURI(Uri imgURI){
this.imgURI = imgURI;
}
}
。上のコードでは、ギャラリーのUriをアダプターに渡そうとしていますが、アダプターとそのすべてがどのように動作するのか混乱しています。私はAndroid Studioの初心者です。どんな指導も有益です、ありがとう! item.addコールアダプタの後のonCreate
onActivityResultでgridview.setAdapter(new ImageAdapter(this,R.id.bUploadImage,items));
)(
private ImageAdapter adapter;
とのonCreateでクラスレベルのアダプタを作成します
adapter = new ImageAdapter(this,R.id.bUploadImage,items)
gridview.setAdapter(adapter);
に行を次の場所で
お試しください - http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/ – onexf
質問を編集できますか?あなたが何をしようとしているのかがはっきりしない。ありがとう。 –