簡體   English   中英

如何在Android設備上訪問相機膠卷/照片?

[英]how can i access the camera roll/Photos on Android?

我在通過Android按鈕單擊時無法找到打開用戶相機膠卷/照片庫的方法。 我正在尋找的解決方案包括訪問相機膠卷/照片廚房,允許用戶選擇圖像,將所選圖像保存到文件,然后最后將該文件保存到諸如parse.com的數據庫。 請幫助並提前感謝您!

請參考下面的鏈接。 我希望實現類似於IOS上的實現。 https://drive.google.com/file/d/0B4jjwQsKhqZRcU1FX05xeThlS0U/view?usp=sharing

請參考此給定的代碼。 完美解決您的問題。 它正在調用圖像庫,還保存圖像並再次顯示它。

 package br.liveo.ndrawer; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.provider.MediaStore; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import java.io.IOException; import br.liveo.navigationliveo.NavigationLiveo; public class Profile extends ActionBarActivity { private RelativeLayout editLayout; private SharedPreferences preferences; private boolean edit = false; private ImageView profilePic; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.profile); ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); editLayout = (RelativeLayout) findViewById(R.id.profile_edit); editLayout.setVisibility(View.INVISIBLE); preferences = getApplicationContext().getSharedPreferences("User", Context.MODE_PRIVATE); String userName = preferences.getString("userName", "No User"); String userEmail = preferences.getString("userEmail", getString(R.string.samplemail)); String userPhoto = preferences.getString("userPhoto", "NULL"); String userAbout = preferences.getString("userAbout", getResources().getString(R.string.about)); TextView name = (TextView) findViewById(R.id.userName); name.setText(userName); TextView email = (TextView) findViewById(R.id.mail); email.setText(userEmail); TextView about = (TextView) findViewById(R.id.about); about.setText(userAbout); profilePic = (ImageView) findViewById(R.id.userPhoto); if (userPhoto.equals("NULL")) { profilePic.setBackgroundResource(R.drawable.ic_no_user); } else { //Bitmap bitmap = Profile.decodeBase64(userPhoto); Bitmap bitmap; try { bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(userPhoto)); } catch (IOException e) { profilePic.setBackgroundResource(R.drawable.ic_no_user); return; } profilePic.setImageBitmap(bitmap); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.profile_edit, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.profile_edit: if (edit) { saveProfile(); edit = false; finish(); } else { item.setIcon(R.drawable.ic_action_accept); edit = true; profileEdit(); } return true; default: finish(); return super.onOptionsItemSelected(item); } } private void saveProfile() { TextView name = (TextView) findViewById(R.id.edit_name); TextView mail = (TextView) findViewById(R.id.edit_mail); TextView about = (TextView) findViewById(R.id.edit_about); SharedPreferences.Editor editor = preferences.edit(); if (name.getText().toString().length() > 0) editor.putString("userName", name.getText().toString()); if (mail.getText().toString().length() > 0) editor.putString("userEmail", mail.getText().toString()); if (about.getText().toString().length() > 0) editor.putString("userAbout", about.getText().toString()); editor.apply(); } private void profileEdit() { RelativeLayout layout = (RelativeLayout) findViewById(R.id.profile_display); layout.setVisibility(View.INVISIBLE); editLayout.setVisibility(View.VISIBLE); } public void pickUser(View view) { Intent intent; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); } else { intent = new Intent(Intent.ACTION_GET_CONTENT); } intent.setType("image/*"); startActivityForResult(intent, 3645); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent resultData) { if (requestCode == 3645 && resultCode == NavigationLiveo.RESULT_OK && resultData != null) { Uri selectedImage = resultData.getData(); profilePic.setImageURI(selectedImage); SharedPreferences preferences = getSharedPreferences("User", Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("userPhoto", selectedImage.toString()); editor.apply(); } } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM