Articles of alpha透明度

OpenGL透明图像中有黑色

我正在开发Android游戏,我想知道为什么每当我用透明度绘制图像时,似乎总是会在透明部分添加一些黑色。 这种情况一直发生,使我的一些效果看起来很奇怪。 这是一个例子。 这两个圆圈只是带有模糊的白色图像,但是你可以看到一个圆圈与另一个重叠,它有一个阴影。 如果我在Inkscape中说两个圆圈重叠,我会在它们重叠的地方得到纯白色。 我在用 GLES20.glEnable(GLES20.GL_BLEND); GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA); 为了我的混合。 知道为什么会这样,我怎么能避免呢? 编辑:我唯一能想到的是两张图片有相同的z所以也许他们只混合背景而不是彼此? 编辑:我改变了 GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA); 至 GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_DST_ALPHA); 这是我正在寻找的结果。 现在唯一的事情是我所拥有的透明图像中的透明图像会被忽略,这是有道理的,因为我认为目标alpha是1.为什么One minus源会添加灰色?

使用ALPHA_8在Android中保存透明图像

我正在创建一个叠加图像,它将作为一种filter位于另一个图像的顶部,强调我希望用户关注的图像部分。 基本上,图像在某些地方只是纯白色,而在其他地方则是透明的,在这些部分之间模糊。 我正在尝试将此图像保存在我的数据库中,但无法使压缩工作。 下面是我遇到问题的代码片段。 Bitmap image = Bitmap.createBitmap(width, height, Config.ALPHA_8) … // create image ByteArrayOutputStream stream = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.PNG, 100, stream); // always returns false 我已经尝试将这些图像保存到文件中,但结果相同。 交替使用压缩格式,质量(在JPEGS的情况下)也没有任何区别。 我可以使用的唯一支持alpha的格式是ARGB_8888。 这对我来说是一个问题,因为我的图像超过1000像素x 1000像素,所以我需要节省空间。 每像素分配4个字节会导致内​​存问题。 在Android上压缩ALPHA_8图像是一个已知问题吗? 是否需要设置一组特定的位图选项才能使其正常工作? 我查看了互联网和SO,虽然有些人似乎也经历过这种情况,但大多数人似乎只是转向ARGB_8888选项而没有ALPHA_8的解决方案 任何帮助表示赞赏

在同一布局中启动两个animation

我试图做一个alpha并在RelativeLayout中翻译。 我定义了两个: AlphaAnimation alpha; alpha = new AlphaAnimation(0.0f, 1.0f); alpha.setDuration(1500); alpha.setFillAfter(true); TranslateAnimation translate; translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 0); translate.setDuration(1000); 所以我在RelativeLayout中启动animation RelativeLayout.startAnimation(translate); RelativeLayout.startAnimation(alpha); 问题是在这种情况下,只有alphaanimation开始而不是翻译。 有人能帮我吗? 问题是如何在同一个对象中同时启动两个不同的animation(在我的情况下为Relative Layout) 我解决了这个问题。 我补充说: AnimationSet animationSet = new AnimationSet(true); animationSet.addAnimation(alpha); animationSet.addAnimation(translate); RelativeLayout.startAnimation(animationSet);

确定Google Play环境(制作,测试版,alpha版)

应用程序是否可以确定应用程序在Google Play的哪个环境中发布? 我想知道应用程序是否位于alpha,beta或生产渠道中,因此我可以为每个环境使用不同的APIurl,如下所示: alpha – test.example.com/api/login beta – staging.example.com/api/login 生产 – example.com/api/login 现在我必须上传许多不同的APK并增加versionCode以使用3个不同的频道。 那么是否可以确定上传的频道?

Android:点击按钮设置alpha。 优选仅xml

我想在一些按钮上引入“向下”风格。 我创建了一个样式和一个州列表。 问题是我希望能够在单击按钮时仅更改背景的alpha(我将具有可变背景,因此使用Alpha通道设置已售出的颜色不是解决方案)。 我只想从声明式xml中做到这一点(不想用布局东西来规范我的代码)。 问题是我不知道如何将这种alpha混合应用于xml drawable中的按钮。 我很确定有一种方法。

Android – 仅更改alpha TextView的文本

说我有这个代码: int color = tv.getCurrentTextColor(); 我如何仅更改此颜色的Alpha? 例如: 如果颜色是0x00ffffff ,我怎么把它改成0xffffffff ? 是否有方法或我需要做一些hex / int操作?

在java / android中更改int颜色不透明度

我试图用下一个代码改变我的主题颜色的不透明度: TypedValue typedValueDrawerSelected = new TypedValue(); getTheme().resolveAttribute(R.attr.colorPrimary, typedValueDrawerSelected, true); int colorDrawerItemSelected = typedValueDrawerSelected.data; 我希望colorDrawerItemSelected保持相同的颜色,但它的alpha应该是25%。 我find了一些从imageView获取rgb颜色的解决方案,但我没有imageView。 感谢您的时间。

Android自定义视图无法以正确的方式处理透明度/ alpha

我正在绘制自定义视图。 在此视图中,我使用两个不同的绘制和路径对象绘制到canvas。 我基本上画了两个重叠的形状。 添加alpha后,视图中重叠的部分比图像的其余部分更暗。 这是不受欢迎的,但我不知道如何解决它。 这是我的代码的剪辑,以显示我如何在我的NewButtonView.java中使用alpha Paint paint = new Paint(); int color = 0x33ffffff; int borderColor = 0xFF000000; paint.setColor(color); paint.setAntiAlias(true); paint.setStrokeWidth(strokeWidth); paint.setStrokeJoin(Paint.Join.ROUND); paint.setStrokeCap(Paint.Cap.ROUND); paint.setStyle(Paint.Style.FILL); 这个Google I / Ovideo大约31分钟……它们显示了我想要的效果。 他们基本上显示这个图像: 添加透明度并获取此图像:UNDESIRED RESULT 他们最终得到了这个:渴望的结果 有没有人知道如何获得这种理想的效果?

OpenGL ES 2.0 PNG alpha通道

我刚刚学习使用OpenGL ES 2.0 for Android。 我一直试图在屏幕中间显示一个纹理,这很容易,但我似乎无法使PNG alpha正常工作。 图像将以黑色背景显示,或者整个图像将略微混合到背景颜色中,具体取决于我使用的设置。 为了达到这一点,我所遵循的实际教程从未使用透明度,因此我尝试使用搜索到的代码,并且可能只是错过了一个重要的步骤。 我已经搜索了很多来解决这个问题,但我没有看到任何答案,我的设置没有。 我已经尝试过glBlendFunc的所有组合,而不是没有运气。 我想如果我试图粘贴可能与此相关的所有代码,问题看起来会非常臃肿,所以我很乐意发布你们要求的任何代码。 我非常感谢我接下来应该尝试的任何想法。 编辑::这是我的片段着色器,这是我认为的原因。 这是我从来没有真正find一个体面的例子来处理透明度,而其他一切都与我在别处看到的一致。 final String fragmentShader = “precision mediump float; \n” + “varying vec2 v_Color; \n” + “uniform sampler2D s_baseMap; \n” + “void main() \n” + “{ \n” + ” vec4 baseColor; \n” + ” baseColor = texture2D( s_baseMap, v_Color ); \n” + […]

Android Alphaanimation:animation结束后,Alpha值会跳回旧值

我在布局上有一个ImageButton视图。 如果用户单击ImageButton,该按钮应淡出。 按钮淡出animation将像这样开始: public void buttonClicked(View aButton){ final Animation aAnim = new AlphaAnimation(1.0f, 0.0f); aAnim.setDuration(500); aButton.startAnimation(aAnim); } 这样可以工作,但只要ImageButton淡出,其Alpha值就会立即跳回1.0并再次显示该按钮。 我使用animation侦听器暂时解决了它,它将ButtonImage设置为在animation结束时不可见,但这对我来说似乎是一个奇怪的解决方案。 我需要做什么才能将Alpha Value按钮保持在animation的最后一个值? 谢谢。