我有一个bmp在Activity1中命名的Bitmap变量,我想将位图发送到Activity2
以下是我用来传递意图的代码.
Intent in1 = new Intent(this, Activity2.class);
in1.putExtra("image",bmp);
startActivity(in1);
Run Code Online (Sandbox Code Playgroud)
在Activity2中,我尝试使用以下代码访问位图
Bundle ex = getIntent().getExtras();
Bitmap bmp2 = ex.getParceable("image");
ImageView result = (ImageView)findViewById(R.Id.imageView1);
result.setImageBitmap(bmp);
Run Code Online (Sandbox Code Playgroud)
应用程序运行时没有例外,但它没有给出预期的结果
是否可以在Android应用程序中只显示图像弹出/启动?它类似于覆盖AlertDialog的普通视图,因此它只包含一个图像而不包含任何其他内容.
解决方案: 感谢@ blessenm的帮助,我找到了答案.将活动屏蔽为对话似乎是理想的方式.以下是我使用的代码.可以根据需要调用此对话框样式活动,与启动新活动的方式相同
ImageDialog.java
public class ImageDialog extends Activity {
private ImageView mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_dialog_layout);
mDialog = (ImageView)findViewById(R.id.your_image);
mDialog.setClickable(true);
//finish the activity (dismiss the image dialog) if the user clicks
//anywhere on the image
mDialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
your_dialog_layout.xml
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image_dialog_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity = "center">
<ImageView
android:id="@+id/your_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src = "@drawable/your_image_drawable"/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
为活动设置以下样式以实现此目的至关重要:
styles.xml
<style name="myDialogTheme" …Run Code Online (Sandbox Code Playgroud) 我正在开发一个绘画应用程序,我想在其中将Bitmap图像从一个活动传递到另一个活动,但项目没有响应.我将相对布局截图转换为位图并将其传递给Intent但问题仍未解决.这是我的代码....
DrawingActivity
package com.newdrawing;
public class DrawingActivity extends Activity {
private Bitmap mBitmap;
private Canvas mCanvas;
private Path mPath;
private Paint mBitmapPaint;
private Paint mPaint;
MyDrawView myDrawView;
RelativeLayout parent;
Bitmap bitmap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawing);
parent = (RelativeLayout) findViewById(R.id.singleparent);
myDrawView = new MyDrawView(this);
parent.addView(myDrawView);
Activity context;
//RelativeLayout item = (RelativeLayout)findViewById(R.id.item);
View child = getLayoutInflater().inflate(R.layout.trans, null);
parent.addView(child);
}
public void color(View v) {
switch (v.getId()) {
case R.id.button3:
parent.setBackgroundColor(Color.RED);
break;
case R.id.button4:
parent.setBackgroundColor(Color.GREEN);
break;
case R.id.button5:
parent.setBackgroundColor(Color.BLUE); …Run Code Online (Sandbox Code Playgroud)