美文网首页
JavaFx制作圆形头像

JavaFx制作圆形头像

作者: Ggx的代码之旅 | 来源:发表于2018-08-15 12:39 被阅读429次

    国内Fx的资料着实稀少,因此解决了一个问题就记录下来,慢慢的就便多了。前端时间实现了一些问题,没来得及记录现在补上,谨此督促一下自己。

    我们知道在FX中显示一个图片可以使用ImageView来实现。那么想要实现圆角或者圆形的 图片肯定也是在其中做文章,查看其API可以发现里面有个public final void setClip(Node value)方法,该方法需要传递一个Node参数。在JavaFx中Node是做有元素的父类,因此我们只需要传递一个有形的Node就可以达到裁剪的目的。
    在这里我们使用Fx为我们提供的Shap类,该类也是继承自Node,并且为我们实现了很多现成的形状其中就有Circle.直接上代码:

    <ImageView>
         <Image backgroundLoading="true" url="@/icons/users.png"/>
         <fitWidth>30</fitWidth>
         <fitHeight>30</fitHeight>
         <clip>
             <Circle fx:id="circle" fill="aqua" centerX="15" centerY="15">
                  <radius>15</radius>
              </Circle>
         </clip>
    </ImageView>
    
    效果图

    此外我们还可以给它加上阴影这样就会显得更加有实质感。代码如下:

        <StackPane>
            <prefWidth>30</prefWidth>
            <prefHeight>30</prefHeight>
            <padding>
                <Insets topRightBottomLeft="5"/>
            </padding>
             <!--阴影效果-->
            <effect>
                <DropShadow>
                    <radius>5</radius>
                    <offsetY>2.0</offsetY>
                </DropShadow>
            </effect>
            <ImageView>
                <Image backgroundLoading="true" url="@/icons/users.png"/>
                <fitWidth>30</fitWidth>
                <fitHeight>30</fitHeight>
                <clip>
                    <Circle fx:id="circle" fill="aqua" centerX="15" centerY="15">
                        <radius>15</radius>
                    </Circle>
                </clip>
            </ImageView>
        </StackPane>
    
    阴影效果

    上面的代码,我们给ImageView的外层嵌套一层布局,然后把阴影加在布局上。

    欢迎共同探讨更多安卓,java,c/c++相关技术QQ群:392154157

    相关文章

      网友评论

          本文标题:JavaFx制作圆形头像

          本文链接:https://www.haomeiwen.com/subject/wcwibftx.html