下面列出了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;
}
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;
}
@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;
}
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;
}
@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;
}
@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;
}
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;
}
@Override
public int getOpacity() {
final int overlayOpacity = mOverlay == null ? PixelFormat.TRANSPARENT : PixelFormat.TRANSLUCENT;
return mDecorated != null ? Drawable.resolveOpacity(mDecorated.getOpacity(), overlayOpacity) : overlayOpacity;
}