所以我从这里尝试了代码:用掩码创建一个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库项目中.我目前的轨道是使用带有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- 6270768和APKLIB没有安装在Maven Repo中,我不相信maven是直到ADT正确支持闭源apk库的方式.
我想知道你是如何在Android项目上处理这些依赖项的.除了使用Maven之外还有哪些策略?
作为参考,这是我们到目前为止所尝试的内容.
所以我搜索了高低,但找不到我的问题的答案.我基本上需要的是Android的ViewFlipper或ViewPager提供的行为,但我想显示左视图和右视图的部分,以指示用户有要滚动的元素,而不是让所选视图占据整个屏幕.
我还想在左侧和侧面视图中添加一些效果,例如调暗和缩放,然后稍微降低.是否可以使用库存ViewFlipper或ViewPager来完成它,或者我是否必须推出自己的视图组,即la cover flow(http://www.inter-fuser.com/2010/01/android-coverflow-widget .html)?
(PS我不想使用Gallery小部件,该组件很糟糕).
这是我们在选择视图后需要显示的内容(仍然显示左视图和右视图):

向左或向右投掷将使主视图过渡,调暗并减少一点,并与下一个或上一个视图相反.
我见过如下命令:
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)