相关疑难解决方法(0)

如何将Bitmap对象从一个活动传递到另一个活动

在我的活动中,我创建了一个Bitmap对象,然后我需要启动另一个Activity,如何Bitmap从子活动(将要启动的那个)传递这个对象?

java android bitmap parcelable

138
推荐指数
5
解决办法
12万
查看次数

Android - 来自片段的getIntent()

我试图将位图从一个片段传递到另一个片段 - 我正在使用这篇文章作为指南:

使用intent Android发送位图

我遇到的问题是使用getIntent()在接收活动片段中.它无法识别该方法.那里有一些帖子说它不可能在片段中使用getIntent()但是必须有办法吗?代码是否应该进入主机活动?

这是我正在尝试的:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String filename = getIntent().getStringExtra("image");
    try {
        FileInputStream is = this.openFileInput(filename);
        imageBitmap = BitmapFactory.decodeStream(is);
        is.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-intent android-fragments

17
推荐指数
3
解决办法
3万
查看次数

在两个活动之间传递位图

我正在开发一个绘画应用程序,我想在其中将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)

android android-layout

16
推荐指数
2
解决办法
3万
查看次数

在Java中序列化和反序列化android.graphics.Bitmap

我已经开始研究我的第一个Android应用程序,并具有处理具有多个图层的图像的应用程序的基础.我能够将项目文件的平面版本导出为PNG,但我希望能够保存分层图像以供以后编辑(包括应用于某些图层的任何选项,例如基于文本的图层).

无论如何,我已经确保需要写入文件的类是'Serializable'但是由于android.graphics.Bitmap不可序列化而导致了一些路障.下面的代码实际上将Bitmap作为PNG输出到ByteArray中,并应作为'readObject'的一部分将其读回.但是,当代码运行时 - 我可以验证读入的'imageByteArrayLength'变量与输出的变量相同 - 但'Bitmap image'始终为null.

任何帮助将不胜感激.谢谢阅读.

private String title;
private int width;
private int height;
private Bitmap sourceImage;
private Canvas sourceCanvas;        
private Bitmap currentImage;
private Canvas currentCanvas;   
private Paint currentPaint; 

private void writeObject(ObjectOutputStream out) throws IOException{
    out.writeObject(title);
    out.writeInt(width);
    out.writeInt(height);

    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    currentImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] imageByteArray = stream.toByteArray();

    int length = imageByteArray.length;
    out.writeInt(length);
    out.write(imageByteArray);          
}

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException{
    this.title = (String)in.readObject();
    this.width = in.readInt();
    this.height = in.readInt();

    int imageByteArrayLength = in.readInt(); …
Run Code Online (Sandbox Code Playgroud)

java serialization android

11
推荐指数
2
解决办法
2万
查看次数

如何将位图发送到bundle

我是android的新手.我想将位图传递给Bundle.但我找不到任何解决方案.实际上,我很困惑.我想在Dialog片段中显示图像.但我不知道如何投入Bundle.我应该发送PutByteArray()吗?但是如果我将位图作为参数传递,那么它就是一个错误的参数.

这是我的代码:

public class MyAlert extends DialogFragment {
  Bitmap b;
  public MyAlert newInstance(Bitmap b) {
    this.b=b;
    MyAlert frag=new MyAlert();
    Bundle args=new Bundle();
    args.put("bitByte",b);
    frag.setArguments(args);
    return frag;
  }

  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    Bitmap bitmap=getArguments().getByteArray("bitByte");
    return new AlertDialog().Builder(getActivity());

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()).setView(R.id.fragid).create();
Run Code Online (Sandbox Code Playgroud)

android bitmap

11
推荐指数
2
解决办法
2万
查看次数