- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 onDraw 函数中调用 getDrawingCache。问题是它只在第一次包含对 Canvas 的更改,之后,它根本不会更新新的更改。这是我的代码:
paintAction.draw(canvas);
if (paintAction.isPermanentChange())
{
Bitmap partialBitmap=getDrawingCache();
int numColored=0;
for (int index1=0;index1<partialBitmap.getWidth();index1++)
{
for (int index2=0;index2<partialBitmap.getHeight();index2++)
{
if (partialBitmap.getPixel(index1,index2)==0xFF000000)
numColored++;
}
}
Log.i("PaintDroid","Bitmap pixels: " + numColored);
int areaWidth=partialBitmap.getWidth()-SCROLLBAR_SIZE;
int areaHeight=partialBitmap.getHeight()-SCROLLBAR_SIZE;
int[] pixels=new int[areaWidth*areaHeight];
partialBitmap.getPixels(pixels,0,areaWidth,0,0,areaWidth,
areaHeight);
numColored=0;
for (int index=0;index<pixels.length;index++)
if (pixels[index]==0xFF000000) numColored++;
Log.i("PaintDroid","Pixels: " + numColored);
(setDrawingCache(true) 在创建 View 时调用,因为如果我从 onDraw 调用它,getDrawingCache 将返回 null。)
可以看出,我正在通过遍历位图和获取数组中的值来计算黑色像素的数量,正如我所说,我第一次得到了我预期的数字,但之后那个,它应该增加,但根本没有改变!
有人知道哪里出了问题吗?谢谢。
最佳答案
我解决了。问题是我在 onDraw 的 Canvas 上最后一次绘制操作之前调用了 setDrawingCacheEnabled(true)。必须在绘制完成后调用,否则无法得到正确的结果。
关于android - getDrawingCache 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11055133/
我几乎阅读了关于这个主题的所有帖子,但似乎没有一个有帮助。 我正在 try catch 当前屏幕的屏幕截图。为此,我正在使用 getDrawingCache。这是我的代码: mRootView.get
我有一个自定义 View ,它将管理数百个离散的用户定义的顺序绘图事件。我不是维护所有单个文本、线条、形状更新的集合,然后在每次 onDraw 期间重新绘制它们,而是在每次 onDraw 结束时获取
我在 onDraw 函数中调用 getDrawingCache。问题是它只在第一次包含对 Canvas 的更改,之后,它根本不会更新新的更改。这是我的代码: paintAction.d
我目前正在处理一个项目,该项目需要显示一个带有灰色(黑色/白色)背景的对话框。为此,我截取了整个应用程序的屏幕截图,将此屏幕截图放在全屏对话框的背景上,并在其上放置一个 ColorFilter 使其变
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我使用以下方法在我的应用中截取屏幕截图: private Bitmap takeScreenshot() { View rootView = findViewById(android.R.id
我想使用 DrawingCache 捕获 ImageView 的内容。我写了下面的代码。 iv1 = (ImageView)findViewById(R.id.iv1); iv2 = (ImageVi
我正在开发一个简单的绘画应用程序,并尝试实现在用户请求时提供更多空间来绘制的功能,我认为这可以通过简单地启用我的 CustomView 类(包含在 LinearLayout 中)的滚动来完成然后在 S
所以我正在尝试制作 VideoView 的屏幕截图。我认为最简单的方法是: videoView.setDrawingCacheEnabled(true); 然后当我需要截图的时候: Bitmap sc
我使用 Pragmatic Bookshelf 的 Touch V2 示例有一个带有加载位图图像的 RelativeLayout -- http://media.pragprog.com/titles
我正在尝试在 TextView 中创建文本的位图。过去,我使用 getDrawingCache 完成此操作。但是,现在我需要创建一个 TextView 的位图,其中的文本比以前长得多。这导致 getD
@Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) thr
我正在尝试创建一个允许用户截取当前 View 的应用程序。我正在使用以下代码来执行此操作。 View content = ((Activity)ctx).findViewById(R.id.rootl
我对 TextView 的 getDrawingCache() 和 setText() 有问题。在 setText() 和使用 getDrawingCache() 之后,我没有在位图中看到文本。
我在自定义 View 上绘图。然后将绘制的图像转换为位图以进行进一步处理,但是当我这样做时Bitmap bitmap = drawView1.getDrawingCache();位图为空。为什么为nu
我正在使用 getDrawingCache() 方法捕获我的布局 View 并从中创建图像。代码工作正常并生成图像,但这里的问题是,生成的图像质量很低。我希望生成的图像的分辨率很高,这样无论何时将其设
我的应用有这段代码 mView.setDrawingCacheEnabled(true); mBitmap = Bitmap.createBitmap(mView.getDrawingCache())
如果我有一个具有透明背景的 View 并且我执行了 bitmap = view.getDrawingCache();,不幸的是该位图不再透明。后台设置黑色背景。 我试过了 view.setDrawin
此代码中缺少什么?同样的代码适用于 ICS。在 API 8 上,滚动出现并且一些内容从屏幕上消失。这种情况下如何获取绘图缓存? 代码: TableLayout page = (TableLayout)
我正在尝试将 View 转换为位图。在模拟器中我的程序工作正常并按预期运行但是当我在设备中运行相同的代码时它在特定行给出空指针异常: Bitmap b = Bitmap.createBitmap(vi
我是一名优秀的程序员,十分优秀!