gpt4 book ai didi

java - android - 如何使用相机从 sd 卡获取图像

转载 作者:行者123 更新时间:2023-11-30 04:30:27 24 4
gpt4 key购买 nike

我在那个应用程序中实现了一个应用程序,一个按钮就在那里。如果你点击那个按钮,相机就会打开,你可以用它来捕捉一些东西。捕获的图像将显示在应用中。

但现在我想再添加一个按钮。如果你点击它然后它会在 GridView 中显示 sdcard 中的所有图像(相机相关图像)。如果你选择任何图像然后它将显示在应用程序中。

谁能建议我如何实现它。

还有一件事。在这段代码中

Bitmap thumbnail = (Bitmap) data.getExtras().get("data");  

这里的“数据”是什么意思?

代码:

public class camera extends Activity 
{

Button camera_btn;
ImageView cap_image;
public static final int CAMERA_PIC_REQUEST = 1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

camera_btn = (Button) findViewById(R.id.camera_btn);
camera_btn.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}

});

}

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == CAMERA_PIC_REQUEST)
{
if(data != null)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
cap_image = (ImageView) findViewById(R.id.cap_image);
cap_image.setImageBitmap(thumbnail);
}
else
{
System.out.println("Please capature the photo");
}

}
}
}

异常:10-20 13:06:35.073: WARN/System.err(5391): java.lang.IllegalArgumentException: id 10020 的对话框从未通过 Activity#showDialog 显示

10-20 13:06:35.073: WARN/System.err(5391): 在 android.app.Activity.missingDialog(Activity.java:2747)

10-20 13:06:35.073: WARN/System.err(5391): 在 android.app.Activity.dismissDialog(Activity.java:2732)

10-20 13:06:35.083: WARN/System.err(5391): 在 com.htc.album.TabPluginDevice.ActivityGlanceBase.handleActivityMessage(ActivityGlanceBase.java:161)

10-20 13:06:35.083: WARN/System.err(5391): 在 com.htc.opensense.album.TemplateActivityBase$ActivityHandler.handleMessage(TemplateActivityBase.java:89)10-20 13:06:35.083: WARN/System.err(5391): 在 android.os.Handler.dispatchMessage(Handler.java:99)

10-20 13:06:35.083: WARN/System.err(5391): 在 android.os.Looper.loop(Looper.java:143)

10-20 13:06:35.083: WARN/System.err(5391): 在 android.app.ActivityThread.main(ActivityThread.java:4277)

10-20 13:06:35.093: WARN/System.err(5391): 在 java.lang.reflect.Method.invokeNative(本地方法)

10-20 13:06:35.093: WARN/System.err(5391): 在 java.lang.reflect.Method.invoke(Method.java:507)

10-20 13:06:35.093: WARN/System.err(5391): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

10-20 13:06:35.093: WARN/System.err(5391): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

10-20 13:06:35.093: WARN/System.err(5391): 在 dalvik.system.NativeStart.main(Native Method)

10-20 13:06:38.523:INFO/LogFilter(726):找不到强制性“主机”HTTP header 。

最佳答案

    camera_btn.setOnClickListener(new OnClickListener(){ 

@Override
public void onClick(View v) {

Intent cameraIntent = new Intent(Intent.ACTION_GET_CONTENT);
cameraIntent.setType("image/*");
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}

});

protected void onActivityResult(int requestCode, int resultCode, Intent data)  
{
if (requestCode == CAMERA_PIC_REQUEST && resultCode==Activity.RESULT_OK)
{
if(data != null)
{
Uri contentUri = data.getData();
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String tmppath = cursor.getString(column_index);
Bitmap bmp = BitmapFactory.decodeFile(tmppath); }
else
{
System.out.println("Please capature the photo");
}

}
}

Here "data" means what?

没有太多概念性知识,但您可以将数据视为您为结果而开始的 Activity 的输出。在您的案例中是图像。也可以是视频或其他任何内容,具体取决于您开始的 Activity 哪个 Action 。

关于java - android - 如何使用相机从 sd 卡获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com