android.graphics.drawable.Drawable#resolveOpacity()源码实例Demo

下面列出了android.graphics.drawable.Drawable#resolveOpacity() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

/**
 * @return the resolved opacity of all child drawables.
 */
public final int getOpacity() {
    if (mCheckedOpacity) {
        return mOpacity;
    }
    createAllFutures();
    final int count = mNumChildren;
    final Drawable[] drawables = mDrawables;
    int op = (count > 0) ? drawables[0].getOpacity() : PixelFormat.TRANSPARENT;
    for (int i = 1; i < count; i++) {
        op = Drawable.resolveOpacity(op, drawables[i].getOpacity());
    }
    mOpacity = op;
    mCheckedOpacity = true;
    return op;
}
 
源代码2 项目: RippleDrawable   文件: LayerDrawable.java
public final int getOpacity() {
    if (mHaveOpacity) {
        return mOpacity;
    }

    final ChildDrawable[] array = mChildren;
    final int N = mNum;
    int op = N > 0 ? array[0].mDrawable.getOpacity() : PixelFormat.TRANSPARENT;
    for (int i = 1; i < N; i++) {
        op = Drawable.resolveOpacity(op, array[i].mDrawable.getOpacity());
    }

    mOpacity = op;
    mHaveOpacity = true;
    return op;
}
 
源代码3 项目: FanXin-based-HuanXin   文件: ArrayDrawable.java
@Override
public int getOpacity() {
  if (mLayers.length == 0) {
    return PixelFormat.TRANSPARENT;
  }
  int opacity = mLayers[0].getOpacity();
  for (int i = 1; i < mLayers.length; i++) {
    opacity = Drawable.resolveOpacity(opacity, mLayers[i].getOpacity());
  }
  return opacity;
}
 
源代码4 项目: Carbon   文件: LayerDrawable.java
public final int getOpacity() {
    if (mHaveOpacity) {
        return mOpacity;
    }

    final ChildDrawable[] array = mChildren;
    final int N = mNum;

    // Seek to the first non-null drawable.
    int firstIndex = -1;
    for (int i = 0; i < N; i++) {
        if (array[i].mDrawable != null) {
            firstIndex = i;
            break;
        }
    }

    int op;
    if (firstIndex >= 0) {
        op = array[firstIndex].mDrawable.getOpacity();
    } else {
        op = PixelFormat.TRANSPARENT;
    }

    // Merge all remaining non-null drawables.
    for (int i = firstIndex + 1; i < N; i++) {
        final Drawable dr = array[i].mDrawable;
        if (dr != null) {
            op = Drawable.resolveOpacity(op, dr.getOpacity());
        }
    }

    mOpacity = op;
    mHaveOpacity = true;
    return op;
}
 
源代码5 项目: fresco   文件: ArrayDrawable.java
@Override
public int getOpacity() {
  if (mLayers.length == 0) {
    return PixelFormat.TRANSPARENT;
  }
  int opacity = PixelFormat.OPAQUE;
  for (int i = 1; i < mLayers.length; i++) {
    Drawable drawable = mLayers[i];
    if (drawable != null) {
      opacity = Drawable.resolveOpacity(opacity, drawable.getOpacity());
    }
  }
  return opacity;
}
 
源代码6 项目: ProjectX   文件: FrameDrawable.java
@Override
public int getOpacity() {
    if (mItems.isEmpty())
        return PixelFormat.TRANSPARENT;
    int op = mItems.get(0).getDrawable().getOpacity();
    final int count = mItems.size();
    for (int i = 1; i < count; i++) {
        op = Drawable.resolveOpacity(op, mItems.get(i).getDrawable().getOpacity());
    }
    return op;
}
 
源代码7 项目: document-viewer   文件: LayerDrawable.java
public final int getOpacity() {
    if (mHaveOpacity) {
        return mOpacity;
    }

    final int N = mNum;
    final Rec[] array = mArray;
    int op = N > 0 ? array[0].mDrawable.getOpacity() : PixelFormat.TRANSPARENT;
    for (int i = 1; i < N; i++) {
        op = Drawable.resolveOpacity(op, array[i].mDrawable.getOpacity());
    }
    mOpacity = op;
    mHaveOpacity = true;
    return op;
}
 
源代码8 项目: Rhythm   文件: RhythmDrawable.java
@Override
public int getOpacity() {
    final int overlayOpacity = mOverlay == null ? PixelFormat.TRANSPARENT : PixelFormat.TRANSLUCENT;
    return mDecorated != null ? Drawable.resolveOpacity(mDecorated.getOpacity(), overlayOpacity) : overlayOpacity;
}