问题标签 [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.

0 投票
0 回答
524 浏览

android - 画布中的 PorterDuff.Mode.CLEAR 不适用于 5.0 或更高版本:Android

我正在使用下面的代码来清除图像的一部分,

当我在 4.4 或更低的设备上测试时,它按预期工作,一切都很好!但在 5.0 或更高版本的设备上它会画黑色圆圈!为什么?怎么了?5.0或以上设备有什么特殊情况吗?

我的测试设备结果,

  1. 摩托 E (4.4) 好的
  2. 摩托 E ( 5.0.2 ) 失败
  3. 三星(4.1.2) 好的
  4. Yureka ( 5.0.2 ) 失败
0 投票
3 回答
880 浏览

android - 以编程方式设置按钮背景可绘制颜色

square_transparent.png

我事先创建了一个可绘制的对象,它是一个矩形,但完全透明。现在我想将此drawable分配给代码中的Button,但还将此drawable的颜色从透明设置为某种特定颜色,例如橙色等。

我已经尝试使用其他一些帖子进行设置,例如 -

但它不起作用。当活动呈现按钮时,它仍然是透明的。

在将可绘制对象分配给按钮之前,我还尝试将 mDrawable.setAlpha 显式设置为 255(完全不透明),但即使这样也不起作用。

请建议,如果有人以其他方式进行此工作。

0 投票
1 回答
1156 浏览

android - ViewGroup 中的黑色矩形 PorterDuff.Mode.CLEAR

我创建了一个可以水平滚动的视图(通过 ViewGroup)。在左侧,我有行的图像(一种标题)。当我向左滚动视图时,我的项目在行标题下移动。因为我在标题上有透明背景,所以我看到了这个标题下的项目。我想删除标题下的部分项目。在绘制标题之前,我尝试在 drawChild 方法中通过 Paint 和 PorterDuff.Mode.CLEAR 绘制矩形。结果我的标题下有黑色矩形。我发现了一些相同的问题,但在其他情况下:

https://code.google.com/p/android/issues/detail?id=54105#c1

Android Paint PorterDuff.Mode.CLEAR 在我的视图上绘制黑色

但我没有找到解决这个问题的方法。据我了解,在使用 PorterDuff.Mode.CLEAR 之前必须绘制一些其他位图。就我而言,我不能这样做。我可以在我的视图中擦除(在我的情况下使透明)一些矩形吗?

编辑:

我也在某处看到了这种方法,但它根本没有改变我的布局:

编辑 2。尝试保存层:

编辑 3

在此处输入图像描述

我有可以向左、向右、向上和向下滚动的视图。这个视图在顶部和左侧包含 2 种类型的标题,我有可以不同大小的项目。当我添加所有这些项目以查看时,我首先添加项目,然后添加标题,在这种情况下,标题将始终绘制在项目的前面。当用户向左/顶部滚动时,项目将转到左侧/顶部,但标题将保持在其位置,并且该项目将位于标题下方。当我有标题的背景时,没关系,因为用户没有看到标题下的项目,但现在我没有背景,用户看到标题下的项目。这就是为什么我尝试使用 drawChild(它调用每个项目)来擦除标题下的部分项目。但是如果我使用

我必须将它用于所有项目。我在 drawChild 中的代码

0 投票
1 回答
201 浏览

android - 在 dispatchDraw 中交换 Android ViewGroup 子颜色

我有一个 ViewGroup(特别是 FrameLayout),它应该有一个流畅的填充效果,我用一个可以很好地显示下面的子视图的路径进行动画处理。

问题是在液体填充线上方,我需要向孩子展示两种颜色的视图反转。(黑色<->白色)如果不简单地遍历位图,我看不到实现此目的的方法,这提供了一个非常糟糕的副本,有很多锯齿,并且渲染速度太慢。

这是我在 dispatchDraw 中当前功能的简化版本:

我尝试了无数种不同的 ColorFilters 和 Transfer Modes 都无济于事。而且孩子们不能让背景透明让我做更简单的颜色替换。

0 投票
6 回答
1523 浏览

android - Android:圆形可绘制

我制作了这个自定义可绘制对象,它应该将任何可绘制对象剪成圆形。但是在我的实现中,传递的可绘制对象是原始形式的输出,而不是圆形形式的输出。

我的错误是什么?

此外,我正在使用 SquareImageview 来显示这个仅在 onMeasure 中使视图呈正方形的可绘制对象。这个问题不适用于圆形图像视图。

0 投票
1 回答
502 浏览

android - 使用 PorterDuffColorFilter 将位图过滤为不同的颜色

我有以下图像:

在此处输入图像描述

现在我想在运行时将此图像过滤为不同的颜色。例如,我希望能够生成它的绿色版本,其中下部是深绿色,左上角是浅绿色。

我怎样才能做到这一点?这甚至可能吗?

我尝试过如下过滤位图:

我已经尝试了所有PorterDuff.Modes,但没有一个真正有效。有时(例如 SRC_IN)我看到圆圈完全被新颜色填充,没有任何阴影。在其他情况下,我看到一个正方形。

我考虑过生成一个本身没有颜色的源图像,并使用 alpha 通道渲染它的阴影。但是,我不确定这是否可行。我希望生成的图像完全不透明(除了您可以在上面看到的外部阴影)。

0 投票
2 回答
1843 浏览

android - RecyclerView 中的图像回收不正确

RecyclerView在每一行都有一个图标。图标应该是动态着色的,所以我使用白色图标并在绑定视图时应用颜色过滤器。奇怪的是,我最终在结果视图中有很多差异。

在此示例中,我尝试将每第三行设置为红色,其余为绿色(注释 #18):

在此处输入图像描述

下面是适配器。如您所见,ImageView每次我重新绑定支架时,我都会将更改后的图标应用到,大概没有为旧的回收图像留出空间。

item_layout.xml

是什么赋予了?

谢谢。

0 投票
2 回答
628 浏览

android - Android 在 centerCropped 图像中创建一个圆孔

我又来了一个android大脑的想法!

我想在位图缩放为 centerCrop 的 imageView 中放置一个圆孔。我知道我需要在哪里放置圆孔(从左侧和底部以 dp 为单位)和孔半径。但是不知道怎么建!

我知道我可以用 Porterduff 打洞,但你建议怎么做?

  • 自定义位图
  • 自定义可绘制/视图
  • 自定义代码

谢谢

以下答案是我的带有孔的 CustomImage:

我用这些行以编程方式调用它:

但是该onDraw()方法被调用了两次(也许它需要),但这让我有两个洞,一个我可以更改参数但另一个仍然在同一个地方!的容器MyImageView是一个RelativeLayout.

如果有人有想法?@小阳光?

0 投票
1 回答
1056 浏览

android - Porter-Duff:不同形状的不同行为?

我有以下布局:

以及以下myShape可绘制对象:

我应用了以下过滤器:

结果看起来是这样的:

在此处输入图像描述

然后我将 myShape 更改为带圆角的矩形:

结果看起来像:

在此处输入图像描述

左边部分没有应用过滤器,右边部分有过滤器。

我想得到什么:

在此处输入图像描述

我应该怎么做才能使用 Porter-Duff 过滤器正确地将边框涂成橙色?还有其他选择吗?

0 投票
1 回答
3126 浏览

android - android TabLayout改变所选标签图标的颜色,显示暗淡的白色

我使用了带有 android 设计库图像的选项卡布局。将所选标签图标的颜色更改为白色时,白色显示不完美,但显示为暗白色。如何在选定的选项卡上显示完美的白色?