我有一个掩码位图,一半是红色,一个是透明的,如 https://www.dropbox.com/s/931ixef6myzusi0/s_2.png
我想使用掩码位图在画布上绘制只在红色区域可见的内容,代码如下:
Paint paint = new Paint();
public void draw(Canvas canvas) {
// draw content here
...
//and mask bitmap here
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_IN));
canvas.drawBitmap(maskBitmap, 0, 0, paint);
}
Run Code Online (Sandbox Code Playgroud)
结果如我所料(内容仅在红色区域可见,但透明区域成为黑色是问题!)
此图像结果:https://www.dropbox.com/s/mqj48992wllfkiq/s_2%20copy.png 任何人帮助我???
我目前正在开发Android应用并试图改善开始时间.为了做到这一点,我正在使用Systrace工具.
我第一次运行应用程序(安装后),启动需要大约40秒,我得到了这个跟踪:
如您所见,标题为30秒浅紫色标签bindApplication.
在此之后,我关闭应用程序(从最近的活动中删除)并重新打开它.这次bindApplication标签只有4秒钟:
我的猜测是,这bindApplication与onCreateApp方法中的繁重工作有关,但我不知道如何发生这种情况.万一它onCreate有所帮助:在我初始化以下库:Parse,Crashlytics,Timber,ParseFacebookUtils和Google Analytics.
编辑:
这是App子类代码:
public class MyApp extends Application {
private Tracker tracker;
@Override public void onCreate() {
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
Trace.beginSection("MyApp");
}
Fabric.with(this, new Crashlytics());
// Parse setup
Parse.enableLocalDatastore(this);
ParseObject.registerSubclass( ... );
Parse.Configuration.Builder parseConfigBuilder = new Parse.Configuration.Builder(this).applicationId(
getString(R.string.parse_application_id))
.server(getString(R.string.parse_server_url));
if (BuildConfig.DEBUG) {
// add logs
Timber.plant(new DebugTree());
Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
parseConfigBuilder.addNetworkInterceptor(new ParseLogInterceptor());
}
Parse.initialize(parseConfigBuilder.build());
ParseFacebookUtils.initialize(this);
ParseInstallation.getCurrentInstallation().saveInBackground();
AnalyticsManager.getInstance().init(this);
AnalyticsManager.getInstance().debugMode(BuildConfig.DEBUG);
if (BuildConfig.DEBUG) …Run Code Online (Sandbox Code Playgroud) 我知道如果我订阅了Activity或Fragment中的observable,我应该使用rxlifecycle-components或rxlifecycle-navi将它绑定到它们各自的生命周期.
但是,我现在正在从ViewHolder(扩展RecyclerView.ViewHolder)中订阅一个observable ,我担心如果视图被破坏并且订阅仍然有效会发生什么.
我应该在哪个生命周期中绑定这个可观察对象以及如何绑定?
有没有办法显示已经应用的迁移?
我想知道哪一次迁移是最后一次,以便我可以决定是否撤消它。
android ×4
performance ×2
bitmap ×1
java ×1
mask ×1
node.js ×1
rx-android ×1
sequelize.js ×1
systrace ×1
xml ×1