У меня проблемы с выяснением, как сделать снимок, который делает моя камера, и отображением его в галерее в моем приложении. В своей основной деятельности я использую:
открытый класс MainActivity расширяет AppCompatActivity {
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton Camera;
Camera= findViewById(R.id.CameraID);
Camera.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent Intent3=new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
startActivity(Intent3);
}
});
}
Это запускает камеру. После съемки изображение сохраняется на SD-карте в моем телефоне.
У меня есть класс галереи с массивом изображений. Здесь я пытаюсь показать картинки. Я понимаю, что использовать формат R.id.name не имеет смысла, так как эти изображения не находятся в моей папке для рисования, но мне нужно было заполнить их чем-то, чтобы я мог протестировать страницу Gallery.Layout.xml. Мой класс галереи выглядит следующим образом:
Галерея открытого класса расширяет AppCompatActivity {
private Integer [] images = {R.drawable.fish1, R.drawable.fish2, R.drawable.fish3,
R.drawable.fish4, R.drawable.fish5, R.drawable.fish6, R.drawable.fish7, R.drawable.fish8};
частный ImageView ImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gallary);
Intent intent = getIntent();
android.widget.Gallery imgGallery = (android.widget.Gallery) findViewById(R.id.gallery);
imgGallery.setAdapter(new ImageAdapter(this));
imageview = (ImageView) findViewById(R.id.imageView);
imgGallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
Toast.makeText(getApplicationContext(), "Image " + arg2,Toast.LENGTH_SHORT).show();
imageview.setImageResource(images[arg2]);
}
});
}
public class ImageAdapter extends BaseAdapter {
private Context context;
int imageBackground;
public ImageAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView imageView = new ImageView(context);
imageView.setImageResource(images[arg0]);
return imageView;
}
}
}