我是新的Android和建立一个小应用程序,从相机拍照,并保存到画廊。
下面是捕获图像的函数。
private void onCaptureImageResult(Intent data) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
File destination = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
FileOutputStream fo;
try {
destination.createNewFile();
fo = new FileOutputStream(destination);
fo.write(bytes.toByteArray());
fo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这是我们的主要活动。xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp" >
<Button
android:id="@+id/btnSelectPhoto"
android:background="#149F82"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Select Photo" />
</LinearLayout>
</LinearLayout>
当图像被捕获时,我想在另一个活动(页面)上显示图像,而不是在具有捕获图像按钮的同一活动上。如何做到这一点。
提前谢谢
主要活动
String filePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
}
private void onCaptureImageResult(Intent data) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
String fileName = System.currentTimeMillis() + ".jpg"
filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + fileName;
File destination = new File(filePath);
...
}
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
intent.putExtra("filePath", filePath)
startActivity(intent);
}
});
另一种活性
String filePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = this.getIntent();
filePath = intent.getStringExtra("filePath");
File imgFile = new File(filePath);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);
}
}
它很简单,在捕获照片后,您的照片将被保存。现在,在activityresult方法中,您只需使用intent来转到第二个活动。
在第二个活动中,只需获取保存图像的路径并将其设置到ImageView中。
你只需要从你的方法传递路径到新的活动。
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("MyImagePath", destination.getAbsoluteFile());
startActivity(intent);
在新的活动中
File imgFile = new File(filePath);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);
}
问题内容: 当我单击a时,它会打开相机,并在保存时将其保存到图库中。我想在新活动中将该图片显示为。 这是我对相机按钮单击的代码 问题答案: 您的主要活动 在您的Activity2上,在onCreate方法上编写此代码
以下ADB命令不适用于Android 11设备 结果在 这似乎与Android 11的变化有关,请参阅Android 11(R)返回空列表时查询ACTION_IMAGE_CAPTURE的意图,这里提到的解决方案是将此添加到清单 亚行有类似的吗?
我从我的Api中获取我的Json对象/数组,并将其打印到我的视图中,foreach数组我在mainactivity中打印id和名称。 这就是我的意图:
问题内容: 我目前正在屏幕上显示。警报的视图应仅在警报中心显示2个元素,一个标题和一个。下面是显示警报及其元素的功能。 但是,活动指示器不会显示在视图中心,实际上它显示在屏幕的右下角,离视图很远。这是什么原因呢? 编辑:我知道我可以为指标的位置硬编码数字,但是我希望警报在具有多种屏幕尺寸和方向的多种设备上运行。 问题答案: 创建视图时,请务必设置frame属性。 到@ 62Shark:
我在用Android Studio。 如何使它支持旧版本? intractivity.xml
但是当我测试在一个空文件上调用average()的程序时,它没有捕获AlithmeticException而是输出“nan”。我应该怎么做才能捕捉到显示文件为空的东西,并通知用户这没有意义/调用average()是错误的?