Android 为什么我不能有目的地通过png?

Android 为什么我不能有目的地通过png?,android,android-intent,android-fragments,Android,Android Intent,Android Fragments,我遇到了一点问题。我有一个有效的jpg字节数组和一个png,我将在下面证明,但由于某种原因,当我通过png意图时,我收到一个奇怪的logcat,我也将在下面提供,我的屏幕返回到以前的活动 确定当包含两个片段的容器接收到另一个片段列表中的一个项目已被按下的消息时,调用下面的片段。按下列表中的一个项目时,下面的片段将从容器中移除,并替换为新的片段,并接收jsonInBytes&imageInBytes public class ImageAndSchematicPreviewFragment ext

我遇到了一点问题。我有一个有效的jpg字节数组和一个png,我将在下面证明,但由于某种原因,当我通过png意图时,我收到一个奇怪的logcat,我也将在下面提供,我的屏幕返回到以前的活动

确定当包含两个片段的容器接收到另一个片段列表中的一个项目已被按下的消息时,调用下面的片段。按下列表中的一个项目时,下面的片段将从容器中移除,并替换为新的片段,并接收jsonInBytes&imageInBytes

public class ImageAndSchematicPreviewFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_image_and_schematic_preview, container, false);

    Bundle extras = getArguments();

    // if there's passed arguments
    if (extras != null)
    {
       final byte[] jsonInBytes = extras.getByteArray("jsonInBytes");
       final byte[] imageInBytes = extras.getByteArray("imageInBytes");

        ByteArrayInputStream imageInputStream = new ByteArrayInputStream(imageInBytes);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(imageInputStream);
        Bitmap imageForPreview = BitmapFactory.decodeStream(bufferedInputStream);

        ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
        imageView.setImageBitmap(imageForPreview);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(jsonInBytes != null){
                    Intent intent = new Intent(v.getContext(), ImageAndSchematicSchematicOnlyView.class);
                    intent.putExtra("imageInBytes", imageInBytes);
                    intent.putExtra("jsonInBytes", jsonInBytes);
                    getActivity().startActivityForResult(intent, 0);
                } else {
                    Intent intent = new Intent(v.getContext(), ImageAndSchematicImageOnlyView.class);
                    intent.putExtra("imageInBytes", imageInBytes);
                    getActivity().startActivityForResult(intent, 0);
                }
            }
        });
    }
    return view;
    }
}

这里是空白预览,当片段没有捆绑包:

当我点击JPG时:

当我点击PNG时:

如您所见,在这两种情况下,图像都是通过以下方式设置的:

 ByteArrayInputStream imageInputStream = new ByteArrayInputStream(imageInBytes);
 BufferedInputStream bufferedInputStream = new    BufferedInputStream(imageInputStream);
 Bitmap imageForPreview = BitmapFactory.decodeStream(bufferedInputStream);

 ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
 imageView.setImageBitmap(imageForPreview);
这至少证明了字节数组是有效的

好的,所以在onClick中我有'imageandschematicsonlyview'和'imageandschematicsonlyview',它们的名字非常接近,有人可能会认为是接收到这些信息才是问题所在,我可以告诉你,事实并非如此,为了证明这一点,我将它们都设置为ImageAndSchematicImageOnlyView,这会将它们设置为可缩放、更大的图像视图。它工作了,.jpg正在工作。然而,当我按下.png上的按钮放大它时,我在log cat中得到了它,然后我返回到上一个活动

03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame 20140421 Rev.6376
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ This is decoding
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ decoding stream->hasLength()
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecParseHeader call : QM
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ Qmage parsing for decoding ok
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode :  QmageHeader.NinePatched 0
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageHeader Height() 12 Width() : 522 sampleSize : 1
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ Qmage Make Color table
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ SkBitmap::kIndex8_Config == config && 1 == sampleSize
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : return true QM
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame 20140421 Rev.6376
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ This is decoding
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ decoding stream->hasLength()
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecParseHeader call : QM
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ Qmage parsing for decoding ok
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode :  QmageHeader.NinePatched 0
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageHeader Height() 135 Width() : 522 sampleSize : 1
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ normal image decoding
03-23 10:40:17.267    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame call : QM
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame 20140421 Rev.6376
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ This is decoding
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ decoding stream->hasLength()
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecParseHeader call : QM
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ Qmage parsing for decoding ok
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ onDecode :  QmageHeader.NinePatched 0
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageHeader Height() 135 Width() : 522 sampleSize : 1
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ normal image decoding
03-23 10:40:17.277    8398-8417/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame call : QM
03-23 10:40:17.287    8398-8420/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame 20140421 Rev.6376
03-23 10:40:17.287    8398-8420/com.xxxx.xxxx E/Qmage﹕ This is decoding
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ decoding stream->hasLength()
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecParseHeader call : QM
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ Qmage parsing for decoding ok
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ onDecode :  QmageHeader.NinePatched 0
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageHeader Height() 12 Width() : 522 sampleSize : 1
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ Qmage Make Color table
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ SkBitmap::kIndex8_Config == config && 1 == sampleSize
03-23 10:40:17.297    8398-8420/com.xxxx.xxxx E/Qmage﹕ onDecode : return true QM
03-23 10:40:17.307    8398-8417/com.xxxx.xxxx E/Qmage﹕ onDecode : return true QM
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx I/dalvikvm﹕ Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx W/dalvikvm﹕ VFY: unable to resolve virtual method 11634: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx I/dalvikvm﹕ Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx W/dalvikvm﹕ VFY: unable to resolve virtual method 11640: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx I/dalvikvm﹕ Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx W/dalvikvm﹕ VFY: unable to resolve virtual method 9308: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
03-23 10:40:17.337    8398-8398/com.xxxx.xxxx D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e
03-23 10:40:17.347    8398-8398/com.xxxx.xxxx I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
03-23 10:40:17.347    8398-8398/com.xxxx.xxxx W/dalvikvm﹕ VFY: unable to resolve virtual method 495: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
03-23 10:40:17.347    8398-8398/com.xxxx.xxxx D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
03-23 10:40:17.347    8398-8398/com.xxxx.xxxx I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
03-23 10:40:17.347    8398-8398/com.xxxx.xxxx W/dalvikvm﹕ VFY: unable to resolve virtual method 517: Landroid/content/res/TypedArray;.getType (I)I
03-23 10:40:17.347    8398-8398/com.xxxx.xxxx D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
03-23 10:40:17.377    8380-8416/com.xxxx.xxxx E/Qmage﹕ onDecode : return true QM
03-23 10:40:17.407    8398-8398/com.xxxx.xxxx I/System.out﹕ show called
03-23 10:40:17.407    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame 20140421 Rev.6376
03-23 10:40:17.407    8398-8398/com.xxxx.xxxx E/Qmage﹕ This is decoding
03-23 10:40:17.407    8398-8398/com.xxxx.xxxx E/Qmage﹕ decoding stream->hasLength()
03-23 10:40:17.407    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecParseHeader call : QM
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ Qmage parsing for decoding ok
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode :  QmageHeader.NinePatched 0
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageHeader Height() 48 Width() : 48 sampleSize : 1
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ Qmage Make Color table
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ SkBitmap::kIndex8_Config == config && 1 == sampleSize
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : return true QM
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame 20140421 Rev.6376
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ This is decoding
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ decoding stream->hasLength()
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecParseHeader call : QM
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ Qmage parsing for decoding ok
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode :  QmageHeader.NinePatched 0
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageHeader Height() 48 Width() : 48 sampleSize : 1
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ normal image decoding
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : QmageDecodeFrame call : QM
03-23 10:40:17.417    8398-8398/com.xxxx.xxxx E/Qmage﹕ onDecode : return true QM
03-23 10:40:17.507    8398-8398/com.xxxx.xxxx D/GC﹕ <tid=8398> OES20 ===> GC Version   : GC Ver rls_pxa988_KK44_GC13.20
03-23 10:40:17.527    8398-8398/com.xxxx.xxxx D/OpenGLRenderer﹕ Enabling debug mode 0
仅供参考。成功转换到.jpeg放大视图时不会出现这种情况


这不是一个大问题,因为我们制作的软件输出到这个软件,所以理论上可以有一个png转换器,但我觉得它不应该是必要的。任何帮助都将不胜感激,任何问题都欢迎。谢谢

嗨,你能告诉我你用什么来放大JPEG文件吗。看起来您收到的原始数据是正确的。但是,当您试图将其放在放大图像视图中时,它们可能会出现问题。告诉我你用来放大图像的是什么。嗨,Bhavdip,谢谢你的回复。我使用的方法与上面的方法完全相同,只是它在一个更大的屏幕上,没有列表,并且能够滚动和缩放。我试着将这两个图像简单地推到空白活动中,但还是发生了。嗨,你能展示ImageAndSchematicOnlyView.class和ImageAndSchematicImageOnlyView.class的代码吗!最后是PNG文件的问题。是的,你是对的,因为如果代码正确地执行了JPEG文件,那么同样的代码应该可以处理PNG文件。