package com.zzw.drawable;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;imp...
package com.zzw.drawable; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; public class Circle extends View { private int posfirst = 0; // 圓球的數量 private int count = 0; // 用這個構造方法,用其他會報錯 public Circle(Context context, AttributeSet attrs) { super(context, attrs); } // 根據情況設置圓球數量 public void setCount(int a) { count = a; } public void choose(int pos) { posfirst = pos; // 執行這個方法 會重新繪圖 this.invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); // 去掉圖形的鋸齒,使得圓球更圓滑 p.setAntiAlias(true); // 獲取屏幕X Y坐標 float w = getWidth(); float h = getHeight(); // 圓球的間距(針對各種機型屏幕適配) int juli = (int) (w / 7); // 設置圓球的半徑(針對各種機型屏幕適配) float radius = w / 50; for (int i = 0; i < count; i++) { if (i == posfirst) { p.setColor(Color.RED); // 畫一個紅色圓形 canvas.drawCircle((w - (count - 1) * juli) / 2 + juli * i, (float) (h * 0.9), radius + w / 142, p); } else { p.setColor(Color.GRAY); // 畫一個灰色圓形 canvas.drawCircle((w - (count - 1) * juli) / 2 + juli * i, (float) (h * 0.9), radius, p); } } } }
使用的時候:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.zzw.imagedaohang.WelcomeActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <com.zzw.drawable.Circle android:id="@+id/circle" android:layout_width="match_parent" android:layout_height="match_parent"> </com.zzw.drawable.Circle> </RelativeLayout>