小编Ang*_*raX的帖子

Android如何在ImageView上应用蒙版?

所以我从这里尝试了代码:用掩码创建一个ImageView.我使用以下图像作为原始和掩码:

在此输入图像描述在此输入图像描述

但是,我得到的结果是这样的:

在此输入图像描述

请注意,窗口背景不是黑色,而是全息光(在星系连接上看起来像一个非常浅的灰色,而不是完全白色).第二个图像是在列表视图中选择项目时得到的结果.

相反,如果我使用相同的算法创建一个新的位图,然后将其传递给图像视图而不是覆盖onDraw(),它会正确绘制:

Canvas canvas = new Canvas();
Bitmap mainImage = //get original image
Bitmap maskImage = //get mask image
Bitmap result = Bitmap.createBitmap(mainImage.getWidth(), mainImage.getHeight(), Bitmap.Config.ARGB_8888);

canvas.setBitmap(result);
Paint paint = new Paint();
paint.setFilterBitmap(false);

canvas.drawBitmap(mainImage, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(maskImage, 0, 0, paint);
paint.setXfermode(null);

imageView.setImageBitmap(result);
Run Code Online (Sandbox Code Playgroud)

我得到了预期的结果:

在此输入图像描述

请注意,正确应用了淡入淡出.选择时,这一点更为明显.

那么ImageView的onDraw方法是如何创建这个黑色背景而不是让窗口背景显示的呢?有趣的是,如果原始图像本身具有一定的透明度,则该透明度得到尊重,例如:

在此输入图像描述

我自己无法弄明白.我宁愿能够在onDraw上进行,而不是预先创建位图,因为它只适用于位图作为源和掩码.我希望能够使用其他可绘制的内容,如渐变和纯色,但在这些情况下,宽度和高度未设置.

android android-imageview

33
推荐指数
1
解决办法
4万
查看次数

Android项目依赖关系管理的状态

我们正在为Android开发标准化我们的基础架构,并且我们正在尝试将依赖关系管理整合到我们的Android库项目中.我目前的轨道是使用带有m2e-android的maven android插件.我们已使用Android SDK Deployer将Android工件上传到Artifactory存储库.我们还有一个内部框架,我们可以将几个库导入到我们的项目中,并且大多数情况下它都可以正常工作.

我们现在面临的问题是包含资源文件的apklib依赖项很难设置.maven插件可以正确配置类路径,但如果apklib具有需要由父Android项目引用的资源文件,则除非您签出库项目并通过ADT将其链接到父项目,否则Eclipse无法找到它们.

在阅读问题https://github.com/rgladwell/m2e-android/issues/8上的m2e-android讨论后,https://stackoverflow.com/questions/6269816/creating-closed-source-android-libraries#answer- 6270768APKLIB没有安装在Maven Repo中,我不相信maven是直到ADT正确支持闭源apk库的方式.

我想知道你是如何在Android项目上处理这些依赖项的.除了使用Maven之外还有哪些策略?

作为参考,这是我们到目前为止所尝试的内容.

  1. 没有依赖管理.所有必需的jar都存储在lib文件夹中并推送到源控件仓库.库项目被设置为子文件夹并被推送到它们所使用的每个项目的源代码控制仓库.还推送了Eclipse项目设置.使用标准ADT Ant脚本构建的项目.
  2. 将依赖关系作为git子模块存入libs文件夹和库依赖关系.使用标准ADT Ant脚本构建的项目.
  3. 使用maven进行依赖管理,包括使用apklib打包的库项目.apklibs中的资源文件问题.

android android-maven-plugin

19
推荐指数
2
解决办法
4378
查看次数

Android - Carousel like widget,显示左右元素的一部分

所以我搜索了高低,但找不到我的问题的答案.我基本上需要的是Android的ViewFlipper或ViewPager提供的行为,但我想显示左视图和右视图的部分,以指示用户有要滚动的元素,而不是让所选视图占据整个屏幕.

我还想在左侧和侧面视图中添加一些效果,例如调暗和缩放,然后稍微降低.是否可以使用库存ViewFlipper或ViewPager来完成它,或者我是否必须推出自己的视图组,即la cover flow(http://www.inter-fuser.com/2010/01/android-coverflow-widget .html)?

(PS我不想使用Gallery小部件,该组件很糟糕).

这是我们在选择视图后需要显示的内容(仍然显示左视图和右视图):

查看切换器

向左或向右投掷将使主视图过渡,调暗并减少一点,并与下一个或上一个视图相反.

android android-widget android-layout

13
推荐指数
1
解决办法
1万
查看次数

双击[ - ]选项对git重置有什么作用?

我见过如下命令:

git reset e542 -- readme.txt
Run Code Online (Sandbox Code Playgroud)

我理解这个命令将提交e542中文件readme.txt的内容放入索引中.但--那里有什么选择呢?

git reset手册页将它列为前两个表单的可选项,但我找不到它的含义.

git reset [-q] [<commit>] [--] <paths>…
git reset (--patch | -p) [<commit>] [--] [<paths>…]
Run Code Online (Sandbox Code Playgroud)

git git-reset

12
推荐指数
1
解决办法
936
查看次数