移动文本&重新绘制Image设备问题

时间:2012-06-08 07:56:52

标签: android android-image

我想要的是,用手指触摸图像移动文本,在按钮上单击它会将现有图像重新绘制为新的图像,粘贴在文本上。

它适用于v3.1以及模拟器。 但我试图在v2.2设备上进行测试它发生了更糟糕的关闭。虽然它对设备有所有支持。可以帮助我离开这里。它会在几周内变得至关重要。谢谢你。

///Redrawing the image & touchin Move of the Canvas with text
public void redrawImage(String path,float sizeValue,String textValue,int colorValue) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        try {
             options.inMutable = true;
        } catch (Exception e) {
             // TODO: handle exception
             System.out.println("#############Error is======"+e.getMessage());
        }

        Bitmap bm = BitmapFactory.decodeFile(path,options);

        proxy = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888);
        Canvas c = new Canvas(proxy);

        //Here, we draw the background image.
        c.drawBitmap(bm, new Matrix(), null);

        Paint paint = new Paint();
        paint.setColor(colorValue); // Text Color
        paint.setStrokeWidth(30); // Text Size
        paint.setTextSize(sizeValue);

        System.out.println("Values passing=========="+someGlobalXvariable+",   "+someGlobalYvariable+",   "
                                      +sizeValue+",   "+textValue);

        //Here, we draw the text where the user last touched.
        c.drawText(textValue, someGlobalXvariable, someGlobalYvariable, paint);

        popImgae.setImageBitmap(proxy);
}

1 个答案:

答案 0 :(得分:0)

在文字抽出之前,只要你触摸,就会知道关闭力发生的时间,就像应用程序启动后一样?

在设备上进行调试
一种非常简单和完全的技术是在实际设备上以调试模式运行代码。在函数的开头添加一个断点,然后跨过每一行直到它强制关闭。

可能是OOM
如果你反复调用redrawImage,就像触摸过程中的每一帧一样,那么分配新的位图可能会快速占用大量内存并导致崩溃:

Bitmap bm = BitmapFactory.decodeFile(path,options);

然后关闭之后可能会发生力量关闭。尝试将bm更改为方法参数或从文件中分配和读取的成员字段。