最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義View實現(xiàn)心形圖案

 更新時間:2021年09月27日 15:39:10   作者:_萬能的博哥  
這篇文章主要為大家詳細(xì)介紹了Android自定義View實現(xiàn)心形圖案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android自定義View實現(xiàn)心形的具體代碼,供大家參考,具體內(nèi)容如下

通過繼承View實現(xiàn)的❤形

在繪制心形需要Path類中的兩個重要方法分別是:moveTo、cubicTo

moveTo 不會進(jìn)行繪制,只用于移動移動畫筆。

lineTo 用于進(jìn)行直線繪制。

quadTo 用于繪制圓滑曲線,即貝塞爾曲線。

cubicTo 同樣是用來實現(xiàn)貝塞爾曲線的。

具體實現(xiàn):

public class HeartView extends View {
    private int mMeasureWidth;
    private int mWidthMode;
    private int mMeasureHeight;
    private int mHeightMode;
    private Paint paint;
 
    public HeartView(Context context) {
        super(context);
    }
 
    public HeartView(Context context, AttributeSet attrs) {
        super(context, attrs);
 
        paint = new Paint();//實例畫筆
        paint.setAntiAlias(true);//抗鋸齒
        paint.setStrokeWidth(2);//畫筆寬度
        paint.setColor(Color.RED);//畫筆顏色
        paint.setStyle(Paint.Style.FILL);//畫筆樣式
    }
 
    /**
     * 測量
     */
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        mWidthMode = MeasureSpec.getMode(widthMeasureSpec);
        mHeightMode = MeasureSpec.getMode(heightMeasureSpec);
        mMeasureWidth = MeasureSpec.getSize(widthMeasureSpec);
        mMeasureHeight = MeasureSpec.getSize(heightMeasureSpec);
        if (mWidthMode == MeasureSpec.AT_MOST && mHeightMode == MeasureSpec.AT_MOST) {
            setMeasuredDimension(200, 200);
        } else if (mWidthMode == MeasureSpec.AT_MOST) {
            setMeasuredDimension(200, mMeasureHeight);
        } else if (mHeightMode == MeasureSpec.AT_MOST) {
            setMeasuredDimension(mMeasureWidth, 200);
        } else {
            setMeasuredDimension(mMeasureWidth, mMeasureHeight);
        }
    }
 
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
 
        int width = getWidth();//獲取屏幕寬
        int height = getHeight();//獲取屏幕高
 
        /**
         *  繪制心形
         */
        //左半面
        Path path = new Path();
        path.moveTo(width / 2, height / 4);
        path.cubicTo((width * 6) / 7, height / 9, (width * 12) / 13, (height * 2) / 5, width / 2, (height * 7) / 12);
        canvas.drawPath(path, paint);
        //右半面
        Path path2 = new Path();
        path2.moveTo(width / 2, height / 4);
        path2.cubicTo(width / 7, height / 9, width / 13, (height * 2) / 5, width / 2, (height * 7) / 12);
        canvas.drawPath(path2, paint);
 
    }
}

在布局中引入一下

<com.xxb.cache.weight.HeartView
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

實現(xiàn)效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • Android自定義頂部導(dǎo)航欄控件實例代碼

    Android自定義頂部導(dǎo)航欄控件實例代碼

    這篇文章主要介紹了Android自定義頂部導(dǎo)航欄控件實例代碼,需要的朋友可以參考下
    2017-12-12
  • Android adb工具使用教程及安裝問題

    Android adb工具使用教程及安裝問題

    安卓調(diào)試橋是一種可以用來操作手機(jī)設(shè)備或模擬器的命令行工具,它是 Android 開發(fā)/測試人員不可替代的強大工具,它允許你與連接的Android設(shè)備進(jìn)行通信,本文給大家介紹Android adb工具使用教程,感興趣的朋友一起看看吧
    2025-04-04
  • Android DownloadProvider 源碼詳解

    Android DownloadProvider 源碼詳解

    這篇文章主要介紹了Android DownloadProvider 源碼詳解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Android 混淆代碼詳解及實例

    Android 混淆代碼詳解及實例

    本文主要介紹Android 混淆代碼的資料,這里整理了詳細(xì)資料及代碼實例,有需要做Android 混淆代碼的朋友可以參考下
    2016-09-09
  • Android開發(fā)自學(xué)路線圖

    Android開發(fā)自學(xué)路線圖

    這篇文章主要介紹了Android開發(fā)自學(xué)路線圖,本文講解的路線圖分為JAVA、Android基礎(chǔ)、Web基礎(chǔ)、Android項目4部份,是一個入門級學(xué)習(xí)路線圖,需要的朋友可以參考下
    2015-04-04
  • Android獲取經(jīng)緯度計算距離介紹

    Android獲取經(jīng)緯度計算距離介紹

    Android提供LocationManager和Location,可以方便的獲得經(jīng)緯度、海拔等位置。使用LocationManager來獲得位置管理類,從而可以獲得歷史GPS信息以及位置變化的監(jiān)聽注冊;使用Location來獲得具體的位置信息
    2014-01-01
  • Android中Handler、Thread、HandlerThread三者的區(qū)別

    Android中Handler、Thread、HandlerThread三者的區(qū)別

    本文主要介紹了Android中Handler、Thread、HandlerThread三者的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Android 屬性動畫原理與DataBinding

    Android 屬性動畫原理與DataBinding

    這篇文章主要介紹了Android 屬性動畫原理與DataBinding的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 詳解Android中實現(xiàn)ListView左右滑動刪除條目的方法

    詳解Android中實現(xiàn)ListView左右滑動刪除條目的方法

    這篇文章主要介紹了Android中實現(xiàn)ListView左右滑動刪除條目的方法,文中分別展示了通過Scroller和NineOldAndroids來實現(xiàn)的例子,需要的朋友可以參考下
    2016-04-04
  • Android中外接鍵盤的檢測的實現(xiàn)

    Android中外接鍵盤的檢測的實現(xiàn)

    這篇文章主要介紹了Android中外接鍵盤的檢測的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論

丹巴县| 景德镇市| 姚安县| 屏边| 佛学| 和政县| 湖州市| 龙游县| 兴文县| 如东县| 临安市| 蕉岭县| 兴业县| 江油市| 宜川县| 红桥区| 临泽县| 白朗县| 九江县| 牡丹江市| 南投县| 肥城市| 乐都县| 芦溪县| 绥化市| 田阳县| 安阳县| 蒙阴县| 胶州市| 封开县| 双柏县| 乐昌市| 会东县| 徐闻县| 呼伦贝尔市| 拜泉县| 辽阳县| 曲麻莱县| 镇原县| 唐河县| 彰化市|