Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自定義星星評分控件,高效

Android自定義星星評分控件,高效

編輯:關於Android編程

看了,上面轉載的博客,其實核心思路代碼只有一個難知識點:

Android中Canvas繪圖之Shader的使用。
那麼,下面我們就來講講Canvas繪圖之Shader的使用。

下面我們再回過來對代碼進行講解(只講難點):

怎麼畫出3分之一個星星:
經過一系列的實驗,發現Drawable對象沒有能指定繪制需要的部分,也就是不能繪制半顆星星(反正找不到,找到可以評論告訴我),然後就采用了折中的方法,把Drawable對象變為Bitmap這樣就好辦了,再利用BitmapShader,想繪制多少就繪制多上(就是實現0.1步進),下面為1/3顆的效果:

private Bitmap drawableToBitmap(Drawable drawable)
{
    if (drawable == null)return null;
    Bitmap bitmap = Bitmap.createBitmap(starSize, starSize, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, starSize, starSize);
    drawable.draw(canvas);
    return bitmap;
}

把Bitmap轉換為畫筆繪制:

paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(new BitmapShader(starFillBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));

在ondraw()方法繪制(三分之一個)

canvas.drawRect(0,0,starSize/3,starSize,paint);
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved