Я читаю примеры Anywall и MealSpotter для Parse.com и задавался вопросом, как я собираюсь объединить некоторые из их функций. Например, как мне взять и сохранить изображения вместо простого ввода текста в сообщениях для примера Anywall? Создать новый класс CameraFragment или создать другие классы?Как взять и сохранить фотографии на Parse с Anywall?
0
A
ответ
2
Я создал приложение для своего колледжа после приложения MealSpotter.
Создать класс, который расширяет ParseObject с добытчиками и сеттеров
public ParseFile getPhotoFile() {
return getParseFile("photo");
}
public void setPhotoFile(ParseFile file) {
put("photo", file);
}
Затем создайте класс CamaraFragment
public class CameraFragment extends Fragment {
public static final String TAG = "CameraFragment";
private Camera camera;
private SurfaceView surfaceView;
private ParseFile photoFile;
private ActionButton photoButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_camera, parent, false);
photoButton = (ActionButton) v.findViewById(R.id.camera_photo_button);
if (camera == null) {
try {
camera = Camera.open();
photoButton.setEnabled(true);
} catch (Exception e) {
Log.e(TAG, "No camera with exception: " + e.getMessage());
photoButton.setEnabled(false);
Toast.makeText(getActivity(), "No camera detected",
Toast.LENGTH_LONG).show();
}
}
photoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (camera == null)
return;
camera.takePicture(new Camera.ShutterCallback() {
@Override
public void onShutter() {
// nothing to do
}
}, null, new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
saveScaledPhoto(data);
}
});
}
});
surfaceView = (SurfaceView) v.findViewById(R.id.camera_surface_view);
SurfaceHolder holder = surfaceView.getHolder();
holder.addCallback(new Callback() {
public void surfaceCreated(SurfaceHolder holder) {
try {
if (camera != null) {
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(holder);
camera.startPreview();
}
} catch (IOException e) {
Log.e(TAG, "Error setting up preview", e);
}
}
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// nothing to do here
}
public void surfaceDestroyed(SurfaceHolder holder) {
// nothing here
}
});
return v;
}
/*
* ParseQueryAdapter loads ParseFiles into a ParseImageView at whatever size
* they are saved. Since we never need a full-size image in our app, we'll
* save a scaled one right away.
*/
private void saveScaledPhoto(byte[] data) {
// Resize photo from camera byte array
Bitmap bookImage = BitmapFactory.decodeByteArray(data, 0, data.length);
// Trabajar con la foto aqui
int h = bookImage.getHeight();
int w = bookImage.getWidth();
Bitmap bookImageScaled = Bitmap.createScaledBitmap(bookImage, 200, 200//800, 800
* bookImage.getHeight()/bookImage.getWidth(), false);
// Override Android default landscape orientation and save portrait
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap rotatedScaledBookImage = Bitmap.createBitmap(bookImageScaled, 0,
0, bookImageScaled.getWidth(), bookImageScaled.getHeight(),
matrix, true);
/*Bitmap rotatedScaledBookImage = Bitmap.createBitmap(bookImage,0,0,bookImage.getWidth(),bookImage.getHeight(),matrix,true);*/
ByteArrayOutputStream bos = new ByteArrayOutputStream();
rotatedScaledBookImage.compress(Bitmap.CompressFormat.JPEG, 100, bos);
byte[] scaledData = bos.toByteArray();
// TEST SCALED DATA -> DATA
// Save the scaled image to Parse
photoFile = new ParseFile("book_photo.jpg", scaledData);
photoFile.saveInBackground(new SaveCallback() {
public void done(ParseException e) {
if (e != null) {
Toast.makeText(getActivity(),
"Error saving: " + e.getMessage(),
Toast.LENGTH_LONG).show();
} else {
addPhotoToSaleAndReturn(photoFile);
}
}
});
}
/*
* Once the photo has saved successfully, we're ready to return to the
* NewbookFragment. When we added the CameraFragment to the back stack, we
* named it "NewMealFragment". Now we'll pop fragments off the back stack
* until we reach that Fragment.
*/
private void addPhotoToSaleAndReturn(ParseFile photoFile) {
//((SaleFragment) getActivity()).getCurrentSale().setPhotoFile(photoFile);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Testttttttttttttt
SaleFragment.getCurrentSale().setPhotoFile(photoFile);
FragmentManager fm = getActivity().getSupportFragmentManager();
fm.popBackStack("NewSaleFragment",
FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
@Override
public void onResume() {
super.onResume();
if (camera == null) {
try {
camera = Camera.open();
photoButton.setEnabled(true);
} catch (Exception e) {
Log.i(TAG, "No camera: " + e.getMessage());
photoButton.setEnabled(false);
Toast.makeText(getActivity(), "No camera detected",
Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onPause() {
if (camera != null) {
camera.stopPreview();
camera.release();
}
super.onPause();
}
Наконец, сохранить объект в той деятельности, которую вы предпочитаете r
// Save the sale and return
sale.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
getActivity().setResult(Activity.RESULT_OK);
}
else {
Toast.makeText(
getActivity().getApplicationContext(),
"Error saving: " + e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
});
Смежные вопросы
- 1. как взять и сохранить фотографии в фрагменте, не используя намерения?
- 2. IOS 8 UIImagePickerController взять фотографии только фотографии
- 3. сохранить фотографии с поверхностиview
- 4. Как подключить внешнюю камеру к iPhone и взять/загрузить фотографии?
- 5. сохранить фотографии на жесткий диск
- 6. Как закодировать «временное удаление» в xcode, используя Anywall?
- 7. Как сохранить фотографии в приложении?
- 8. Как сохранить фотографии с помощью Instagram API и питона
- 9. Как сохранить фотографии с URL-адреса на диск
- 10. Как сохранить фотографии на документ с Python win32com
- 11. Как сохранить toUser и fromUser в Parse?
- 12. Сохранить изображение из фотографии URL на сервере
- 13. Лучший способ сохранить фотографии на 360 градусов
- 14. Как сохранить изображения в Parse?
- 15. Как сохранить статус с помощью службы Parse
- 16. Sinch, Parse: Как отправить фотографии с помощью приложения чата с помощью Parse?
- 17. Как сохранить данные, такие как фотографии и видео в icloud
- 18. Как сохранить фотографии в библиотеке/альбоме телефона?
- 19. Как сохранить указатель с разными ACL объекта Parent на Parse?
- 20. Сохранить и получить фотографии с Zend из базы данных mysql
- 21. Как сохранить загруженные фотографии в базе данных?
- 22. Невозможно сохранить фотографии, сделанные с помощью камеры на SD-карте
- 23. Как сохранить захваченные фотографии в приложении iOS?
- 24. Как сохранить фотографии в папку на Google Диске в iOS
- 25. Ссылка на выбранные фотографии
- 26. Как взять символы из массива и сохранить их в переменной?
- 27. Как сохранить изображение на фотографии в iPhone без потери качества?
- 28. Как сохранить фотографии в полном разрешении на Android?
- 29. Xml Parse Edit Сохранить и создать на Java
- 30. Как сохранить веб-страницу локально, включая фотографии и т. Д.