问题标签 [porter-duff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在不耗尽内存的情况下在 droid 中制作益智应用程序?
我注意到来自 google play 商店的其他拼图应用程序可以多达 400 个单独的可移动拼图
我一直在尝试学习如何至少拍摄一张能代表我的拼图的图像,裁剪某些部分并用拼图设计掩盖留下的图像空间,以创建我的个人拼图
我想为我的应用程序最多使用 20 块,但到目前为止,根据我的 android studio 内存日志,一旦位图工厂完成创建一个拼图块,我正在使用大约 18mb 的内存,在与所有其他块一起创建 20 块之后应用程序的功能我使用了 400+mb 的内存,我必须使用“largeHeap=true”来避免内存不足,但我已经接近超过这些更高的限制,以至于应用程序超级缓慢且足够动画活动将不可避免地使应用程序崩溃
我很想知道其他 Play Store 益智应用在做什么,而我没有
非常感谢任何输入
仅供参考,我的图像使用 PNG24,测试图像的尺寸为 556x720
这是一个示例,如果我只创建一个动画拼图图像
}
这是我加载 5 张图片时的样子
http://s15.postimg.org/ymqspk77v/Screenshot_2016_02_29_07_19_26.png
android - ComposeShader 中的 PorterDuff.Mode.MULTIPLY 无法正常工作
我想在我的应用程序中实现调色板。这是主要的 onDraw 方法。
但是,ComposeShader shader
似乎不起作用。
那是,
仅显示垂直渐变。如果我更改参数:
它显示水平渐变。没有乘法!为什么?
android - 绘制透明区域不使用拖动侦听器更新
我从 SO 的一个习惯中看到了很多transparent
关于孩子背景的问题,但是似乎没有人有这个问题。Views
ViewGroup
背景:
我创建了一个自定义FrameLayout
;这个容器有动态添加的视图。它的孩子应该有一个透明的背景,但容器的另一个表面必须有背景颜色。子视图可以drag'n'dropped
在此容器中的任何位置。
我做什么:
我覆盖dispatchDraw()
,创建一个Bitmap
和一个新的Canvas
,然后我用白色背景填充新的画布。
我在子视图上创建一个循环,从子维度创建一个新的,并用于Paint
清除子区域。对于每个孩子,我将 Paint 和 Rect 添加到新的 Canvas。
最后,我通过传递创建的位图在 给出的主画布上使用。Rect
PorterDuff.Mode.DST_OUT
drawBitmap
dispatchDraw()
问题:
这很好用:孩子们有一个透明的背景,其余的都是白色背景。但是,当我DragListener
向孩子添加 a 时,“切割”区域没有更新(虽然dispatchDraw
被正确召回):换句话说,当我拖动子视图时,它被很好地放下但透明区域仍然在同一个地方。
代码:
自定义FrameLayout
:
DragListener
with事件ACTION_DROP
:
截图:



关于我找到的所有问答,我尝试了很多东西,但似乎没有任何效果。
任何帮助将不胜感激。
android - Android 裁剪位图画布
我想创建裁剪位图功能并参考了Android: Free Croping of Image但这会将位图设置在另一个 imageView 中。现在我知道我可以在画布中设置裁剪位图但我想保留原始位图并想做在 onDraw() 中进行裁剪,而不是制作不同的位图,然后将其设置在画布中。我尝试在 onDraw 中实现以下代码,但没有裁剪,位图保持原样。请帮助,以便我可以在其中编写代码CustomView 的 onDraw() 方法。
我的 onDraw() 方法
android - PorterDuff 与 NinePatchDrawable
我正在尝试使用 9 个可绘制的补丁来使用 PorterDuff 剪切彩色背景。我的目标图像是一个灰色的矩形。源图像是一个 9 补丁气球,它看起来像这样:
预期的结果是: 气球里面是灰色,外面是白色背景
我的 imageView 代码:
我想使用 drawDirectlyOnCanvas,因为即使 drawWithBitmap 有效,它的效率也不高。
android - PorterDuff 掩蔽叶不透明黑色背景
我正在尝试使用定义为九个补丁的蒙版来掩盖 FrameLayout。然而,虽然它在旧版本(例如 4.4.4)上的 5.0+ 上运行良好,但补丁留下了不透明的黑色背景。除了在渲染到屏幕或恢复到软件层之前绘制到屏幕外位图之外,还有什么办法可以避免这种情况?
android - 设备似乎以不同的方式处理滤色器
我有一个带有colorPrimary
(红色)背景的按钮。在某些情况下,我必须在背景上应用颜色过滤器:
myButton.getBackground().setColorFilter(getResources().getColor(R.color.background_grey), PorterDuff.Mode.SRC);
这按应有的方式工作。
我还需要能够撤消此操作。我尝试了setColorFilter(null)
and clearColorFilter()
(反过来调用setColorFilter(null)
)。这在大多数设备上都可以正常工作。但是,在某些设备上,按钮变为白色而不是红色。点击按钮似乎将背景设置回红色(首先colorPrimaryDark
然后返回colorPrimary
)
只有少数设备表现出这种行为,其中之一是 LG G3 Vigor。
有没有办法在任何设备上做到这一点?