Android打造带透明圆弧的ImageView(5)

<com.linuxidc.customviewsdemo.views.ArcImageView.ArcImageView
                android:id="@+id/aiv_two"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/seafood"
                custom:drawStyle="LEFT_BOTTOM"
                custom:drawStr="海鲜"
                custom:arcAlpha="100"
                custom:arcColor="@color/gray"
                custom:textColor="@color/black"
                custom:textSize="20sp" />

</RelativeLayout>
    </LinearLayout>

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal" >

<RelativeLayout
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent" >

<com.linuxidc.customviewsdemo.views.ArcImageView.ArcImageView
                android:id="@+id/aiv_three"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/cheese"
                custom:drawStyle="RIGHT_TOP"
                custom:drawStr="奶酪"
                custom:arcAlpha="100"
                custom:arcColor="@color/gray"
                custom:textColor="@color/black"
                custom:textSize="20sp" />
        </RelativeLayout>

<RelativeLayout
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent" >

<com.linuxidc.customviewsdemo.views.ArcImageView.ArcImageView
                android:id="@+id/aiv_four"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/barbecue"
                custom:drawStyle="LEFT_TOP"
                custom:drawStr="烧烤"
                custom:arcAlpha="100"
                custom:arcColor="@color/gray"
                custom:textColor="@color/black"
                custom:textSize="20sp" />

</RelativeLayout>
    </LinearLayout>
</LinearLayout>

注意,在布局文件中引入自定义属性时需要加入一行代码:xmlns:custom="http://schemas.android.com/apk/res-auto"。

好了,需求搞定,剩下的就是搬到实际的项目当中去了。实现效果如下:

Android打造带透明圆弧的ImageView

总结一下,自定义View一般就是通过重写onDraw、onMeasure()、onLayout()等方法来进行测量、绘制,绘制的时候一般会用到Canvas、Paint、Bitmap等类,测量和绘制的过程其实就是对现实生活中绘图工作的抽象和实现,我们利用面向对象的思想将画板、画纸、画笔等工具以及绘画的动作用一行行代码加以描述就OK啦!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/57c780ddaf74235e22fc733cd8e9577b.html