Android: Získání názvu souboru z fotoaparátu?

hlasů
6

Musím běžet na malý problém s něčím, co jsem asi jen s výhledem.

Chci, aby se obraz z povrchu náhledu fotoaparátu a uložit jej do sd_card. Tento postup funguje téměř dokonale. I přiřadit mu název souboru, a pro toho či onoho důvodu, že nepoužívá název souboru.

To je to, co jsem se snažil udělat:

    Button imagecapture = (Button)findViewById(R.id.imagecapture);
    imagecapture.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            String filename = null;
            ImageCaptureCallback iccb = null;

                try {
                filename = timeStampFormat.format(new Date());
                ContentValues values = new ContentValues();
                values.put(Media.TITLE, filename);
                values.put(Media.DESCRIPTION, Image capture by camera);

                Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
                iccb = new ImageCaptureCallback( getContentResolver().openOutputStream(uri));
                } catch(Exception ex ){
                ex.printStackTrace();
                Log.e(getClass().getSimpleName(), ex.getMessage(), ex);
                }
            camera.takePicture(mShutterCallback, mPictureCallbackRaw, iccb);
            com.froogloid.android.gspot.Park.imageFileName = filename;


        }
    }); 

To nebude používat název souboru (tj čas / datum razítka jsem ji požádat, aby byl.)

Položena 18/01/2009 v 21:30
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
5

To byl vyřešen zavedením PictureCallback přes třídu ImageCaptureCallback a Potlačení onPictureTaken kde byl soubor je písemný prostřednictvím výstupního souboru toku. Vše, co musel udělat, bylo změnit fileoutput proudu do názvu souboru, který chcete.

Odpovězeno 23/01/2009 v 14:43
zdroj uživatelem

hlasů
0

Tady to je: Doufám, že to pomůže / Pravděpodobně není nejlepší způsob, jak jít o tom, ale fungovalo to.

Jedná se o fotoaparát zachytit obraz zpětné volání .

import java.io.FileOutputStream;
import java.io.OutputStream;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.util.Log;
import android.widget.Toast;

public class ImageCaptureCallback implements PictureCallback  {

    private OutputStream filoutputStream;
    public ImageCaptureCallback(OutputStream filoutputStream) {
    this.filoutputStream = filoutputStream;
}
@Override  
public void onPictureTaken(byte[] data, Camera camera) {

    try {
            Log.v(getClass().getSimpleName(), "onPictureTaken=" + data + " length = " + data.length);
            FileOutputStream buf = new FileOutputStream("/sdcard/dcim/Camera/" + CameraActivity.filename + ".jpg");
            buf.write(data);
            buf.flush();
            buf.close();
          // filoutputStream.write(data);
            filoutputStream.flush();
            filoutputStream.close();

        } catch(Exception ex) {
            ex.printStackTrace();
        }
        }

}
Odpovězeno 25/02/2009 v 22:25
zdroj uživatelem

hlasů
0

to neukládá na disk? v mém app tento kód uloží na disk, možná budete používat proměnnou „filaname“ získat obraz z sdcard? použít obrázek z sdcard je lepší uložit do proměnné, na examople, hodnota „fileUri“ z uri.toString, konec dostat z sdcard souboru s uri Uri.parse (fileUri) ..

Odpovězeno 26/01/2009 v 14:01
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more