【问题标题】:OpacityMask on AndroidAndroid 上的 OpacityMask
【发布时间】:2015-10-11 20:46:23
【问题描述】:

我在 Android 上遇到了OpacityMask 的问题。如果在OpacityMask 后面设置另一个Image,您将看到黑色矩形。这是一个最小的例子:

import QtQuick 2.5
import QtQuick.Controls 1.2
import QtGraphicalEffects 1.0

Item {
    Image {
        anchors.fill: parent
        source: "qrc:/images/background.png"
    }

    Image {
        id: avatarImage
        source: "qrc:/images/avatar_test.png"
        visible: false
        // width: 128
        // height: 128
    }

    Image {
        id: avatarImageMask
        source: "qrc:/images/avatar_mask.png"
        visible: false
        // width: 128
        // height: 128
    }

    OpacityMask {
        source: avatarImage
        maskSource: avatarImageMask
        anchors.fill: avatarImage
    }
}

所有*.png 文件的分辨率均为128x128。

这个问题有解决方案还是我做错了什么?

【问题讨论】:

    标签: android qt qml qt5 opacitymask


    【解决方案1】:

    在背景Image 上将mipmap 设置为true 为我解决了这个问题。这是一个最小的示例代码:

    import QtQuick 2.5
    import QtQuick.Controls 1.2
    import QtGraphicalEffects 1.0
    
    Item {
        Image {
            mipmap: true // <-- for some cost of performance, but mask will work
            anchors.fill: parent
            source: "qrc:/images/background.png"
        }
    
        Image {
            id: avatarImage
            source: "qrc:/images/avatar_test.png"
            visible: false
            // width: 128
            // height: 128
        }
    
        Image {
            id: avatarImageMask
            source: "qrc:/images/avatar_mask.png"
            visible: false
            // width: 128
            // height: 128
        }
    
        OpacityMask {
            source: avatarImage
            maskSource: avatarImageMask
            anchors.fill: avatarImage
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 2015-05-07
      • 2015-04-22
      • 2022-06-13
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      相关资源
      最近更新 更多