안드로이드를 통해 터미널 내 이미지 가져오기
9492 단어 Android
컨텐트
터미널 내의 그림을 가져오려면 단추를 누르십시오.
이미지를 완성하다.
Layout
이미지 선택 버튼과 가져온 이미지를 표시할 ImageView를 준비합니다.
activty_main.xml
<Button
android:id="@+id/button2"
android:text="get image"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/image_view"
android:scaleType="fitStart"
android:adjustViewBounds="true"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Activity
버튼을 눌렀을 때 문서를 열 수 있는 텐트를 만들고 이미지 폴더의 읽기를 설정합니다.
결과 이미지를 가져오려면 startActivityForesult에서 시작합니다.
두 번째 매개변수에 ID를 추가합니다.(반환 시 판정에 사용)
MainActivity.java(1)
public class MainActivity extends AppCompatActivity {
private static final int RESULT_PICK_IMAGEFILE = 1000;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.image_view);
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, RESULT_PICK_IMAGEFILE);
}
});
}
startActivityForesult 종료 후 onActivityResult가 호출됨결과 코드, 호출 시 ID, 결과를 전달합니다.
결과 코드(resultCode)에 정상 종료 [RESULT OK], 취소 [RESULT CANCELED] 포함
호출 시 ID에는 startActivityForResult의 두 번째 매개변수가 포함되어 있습니다.
내용에 이미지 경로가 포함되어 있습니다.
이미지 경로에서 Bitmap을 생성하여 Layout의 ImageView에 설정합니다.
MainActivity.java(2)
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (requestCode == RESULT_PICK_IMAGEFILE && resultCode == RESULT_OK) {
Uri uri = null;
if (resultData != null) {
uri = resultData.getData();
try {
Bitmap bmp = getBitmapFromUri(uri);
imageView.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private Bitmap getBitmapFromUri(Uri uri) throws IOException {
ParcelFileDescriptor parcelFileDescriptor =
getContentResolver().openFileDescriptor(uri, "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
return image;
}
}
참고 자료
· 스토리지 액세스 프레임워크
https://developer.android.com/guide/topics/providers/document-provider.html?hl=ja
・이벤트 결과 얻기
https://developer.android.com/training/basics/intents/result.html?hl=ja
Reference
이 문제에 관하여(안드로이드를 통해 터미널 내 이미지 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamikoo@github/items/fe27482954cd73e55935텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)