2013-01-18 2 views
0

Привет всем Я новичок, разрабатывающий приложение для Android. У меня есть одно приложение, скажем, whatsapp, с помощью которого мы можем выбрать изображения из галереи и отправить их на наш друзей. Аналогично, я создаю аналогичную деятельность приложения, которая реагирует на намерение ACTION_PICK.как отправить ресурс с возможностью рисования с помощью метода setResult() из вызываемой активности в вызывающую активность

позволяет сказать, что я получил намерение от whatsapp к своей деятельности, используя getIntent(), и im отправит результат обратно с помощью setResult() .. между ними Я хотел бы знать, как вставить ресурс рисованного изображения из моего приложения в приложение whats через setResult, чтобы whatsapp мог принять изображение im, щелкнув в моем приложении, и отправил его моим друзьям.

ниже код ссылки из developer.android.com

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    // Get the intent that started this activity 
    Intent intent = getIntent(); 
    Uri data = intent.getData(); 

    // Figure out what to do based on the intent type 
    if (intent.getType().indexOf("image/") != -1) { 
     // Handle intents with image data ... 

     **// wanted to know what code must be entered here.** 


    } else if (intent.getType().equals("text/plain")) { 
     // Handle intents with text ... 
    } 
} 


// Create intent to deliver some kind of result data 
Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri"); 
setResult(Activity.RESULT_OK, result); 
finish(); 

ответ

1

Попутный изображения может быть медленным, потому что иногда изображения могут быть очень большими. Вы можете сохранить его на жесткий диск и передать путь к файлу обратно в свою активность и открыть свою активность.

1

Самый простой способ - это то, что предложил @ wtsang02. Есть несколько других подходов, если вам не нравится касаться файловой системы.

  1. MemoryFile. Затем вы можете получить файловый дескриптор, который легко передать в Intent (отметьте this и this).

  2. Я думаю, что это более чистый подход, но вам нужно сравнить его, чтобы увидеть, работает ли оно на вас. Вы можете получить byte array from your Drawable, отправить его в качестве Parcelable, а затем восстановить Drawable обратно из байта []:

    byte[] drawableBytes = [your byte array]; 
    ByteArrayInputStream is = new ByteArrayInputStream(drawableBytes); 
    Drawable drw = Drawable.createFromStream(is, "drawable"); 
    
Смежные вопросы