小编Fly*_*mba的帖子

画布上的Android Mask位图生成黑色空间

我有一个掩码位图,一半是红色,一个是透明的,如 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 mask bitmap

8
推荐指数
2
解决办法
2万
查看次数

Android应用程序首次启动非常慢,systrace显示30秒的bindApplication

我目前正在开发Android应用并试图改善开始时间.为了做到这一点,我正在使用Systrace工具.

我第一次运行应用程序(安装后),启动需要大约40秒,我得到了这个跟踪:

第一次运行

如您所见,标题为30秒浅紫色标签bindApplication.

在此之后,我关闭应用程序(从最近的活动中删除)并重新打开它.这次bindApplication标签只有4秒钟:

第二次运行

  • 有人知道第一次运行这么长时间是否正常?
  • 我该怎么做才能改善它?

我的猜测是,这bindApplication与onCreateApp方法中的繁重工作有关,但我不知道如何发生这种情况.万一它onCreate有所帮助:在我初始化以下库:Parse,Crashlytics,T​​imber,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)

performance android systrace

5
推荐指数
1
解决办法
943
查看次数

Android - 布局性能:程序化与XML

作为一名Android开发人员,通过以编程方式或XML方式声明布局,让我不知道应用程序性能是否更好.

我已经在SO上阅读了这个和这个问题,但他们都没有回答我的问题:

什么是更高性能:以编程方式编写布局或在xml文件中声明它们?

请注意,我只询问性能,我不想要基于其他因素的答案.

另外,我正在寻找一个非常技术性的答案.如果需要,请提供AOSP代码的链接以证明您的答案(您可以假设Android版本是Marshmallow).更好的是指出一个实验/论文/基准是使用两种不同方式比较大型布局的加载时间.

java xml performance android android-layout

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

Android - 视图持有者中的Rx可观察订阅:如何处理生命周期?

我知道如果我订阅了Activity或Fragment中的observable,我应该使用rxlifecycle-components或rxlifecycle-navi将它绑定到它们各自的生命周期.

但是,我现在正在从ViewHolder(扩展RecyclerView.ViewHolder)中订阅一个observable ,我担心如果视图被破坏并且订阅仍然有效会发生什么.

我应该在哪个生命周期中绑定这个可观察对象以及如何绑定?

android android-lifecycle rx-android

4
推荐指数
2
解决办法
3328
查看次数

列出已应用的续集迁移

有没有办法显示已经应用的迁移?

我想知道哪一次迁移是最后一次,以便我可以决定是否撤消它。

node.js sequelize.js sequelize-cli

3
推荐指数
2
解决办法
5344
查看次数