diff --git a/app/src/main/java/com/ray650128/iosclockwidget/ClockUpdateService.kt b/app/src/main/java/com/ray650128/iosclockwidget/ClockUpdateService.kt index df9dc78..5b39027 100644 --- a/app/src/main/java/com/ray650128/iosclockwidget/ClockUpdateService.kt +++ b/app/src/main/java/com/ray650128/iosclockwidget/ClockUpdateService.kt @@ -23,11 +23,15 @@ class ClockUpdateService : Service() { if (isScreenOn) { val calendar = Calendar.getInstance() val second = calendar[Calendar.SECOND] + val minute = calendar[Calendar.MINUTE] + val hour = calendar[Calendar.HOUR] val millisecond = calendar[Calendar.MILLISECOND] // 計算時、分、秒的旋轉角度 secondAngle = ((second + (millisecond / 1000f)) * 360f / 60f)//(second * 360f / 60f) + minuteAngle = ((minute + (second / 60f)) * 360f / 60f)//(second * 360f / 60f) + hourAngle = ((hour + (minute / 60f)) * 360f / 12f)//(second * 360f / 60f) sendWidgetIntent() - Thread.sleep(100) + Thread.sleep(50) } } } @@ -142,6 +146,8 @@ class ClockUpdateService : Service() { var isServiceRunning = false var secondAngle = 0f + var minuteAngle = 0f + var hourAngle = 0f const val SECOND_CHANGED = "SECOND_CHANGED" const val SECOND_ANGLE = "SECOND_ANGLE" diff --git a/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt b/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt index 22a70be..a44d4ec 100644 --- a/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt +++ b/app/src/main/java/com/ray650128/iosclockwidget/receiver/IOSClockWidget.kt @@ -62,19 +62,37 @@ internal fun updateClockWidget( // Construct the RemoteViews object val views = RemoteViews(context.packageName, R.layout.i_o_s_clock_widget) views.setTextViewText(R.id.appwidget_text, widgetText) - val bmpOriginal = BitmapFactory.decodeResource(context.applicationContext.resources, + val bmpSecond = BitmapFactory.decodeResource(context.applicationContext.resources, R.drawable.img_second_hand ) - val bmpResult = Bitmap.createBitmap(285, 285, Bitmap.Config.ARGB_8888) - val tempCanvas = Canvas(bmpResult) - tempCanvas.rotate(ClockUpdateService.secondAngle, 285 / 2.toFloat(), 285 / 2.toFloat()) - tempCanvas.drawBitmap(bmpOriginal, 0f, 0f, null) - views.setImageViewBitmap(R.id.imageView, bmpResult) + val bmpMinute = BitmapFactory.decodeResource(context.applicationContext.resources, + R.drawable.img_minute_hand + ) + val bmpHour = BitmapFactory.decodeResource(context.applicationContext.resources, + R.drawable.img_hour_hand + ) + val bmpSecondResult = Bitmap.createBitmap(285, 285, Bitmap.Config.ARGB_8888) + val tempSecondCanvas = Canvas(bmpSecondResult) + tempSecondCanvas.rotate(ClockUpdateService.secondAngle, 285 / 2.toFloat(), 285 / 2.toFloat()) + tempSecondCanvas.drawBitmap(bmpSecond, 0f, 0f, null) + views.setImageViewBitmap(R.id.imgSec, bmpSecondResult) + + val bmpMinuteResult = Bitmap.createBitmap(285, 285, Bitmap.Config.ARGB_8888) + val tempMinuteCanvas = Canvas(bmpMinuteResult) + tempMinuteCanvas.rotate(ClockUpdateService.minuteAngle, 285 / 2.toFloat(), 285 / 2.toFloat()) + tempMinuteCanvas.drawBitmap(bmpMinute, 0f, 0f, null) + views.setImageViewBitmap(R.id.imgMinute, bmpMinuteResult) + + val bmpHourResult = Bitmap.createBitmap(285, 285, Bitmap.Config.ARGB_8888) + val tempCanvas = Canvas(bmpHourResult) + tempCanvas.rotate(ClockUpdateService.hourAngle, 285 / 2.toFloat(), 285 / 2.toFloat()) + tempCanvas.drawBitmap(bmpHour, 0f, 0f, null) + views.setImageViewBitmap(R.id.imgHour, bmpHourResult) // Click to call Alarm val alarmClockIntent = Intent("android.intent.action.SHOW_ALARMS") val pendingIntent = PendingIntent.getActivity(context, 0, alarmClockIntent, PendingIntent.FLAG_IMMUTABLE) - views.setOnClickPendingIntent(R.id.imageView, pendingIntent) + views.setOnClickPendingIntent(R.id.imgSec, pendingIntent) // Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views) diff --git a/app/src/main/res/drawable-nodpi/img_hour_hand.png b/app/src/main/res/drawable-nodpi/img_hour_hand.png new file mode 100644 index 0000000..15b466f Binary files /dev/null and b/app/src/main/res/drawable-nodpi/img_hour_hand.png differ diff --git a/app/src/main/res/drawable-nodpi/img_minute_hand.png b/app/src/main/res/drawable-nodpi/img_minute_hand.png new file mode 100644 index 0000000..ccac6c1 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/img_minute_hand.png differ diff --git a/app/src/main/res/drawable-nodpi/img_second_hand.png b/app/src/main/res/drawable-nodpi/img_second_hand.png index 8559103..bb8122c 100644 Binary files a/app/src/main/res/drawable-nodpi/img_second_hand.png and b/app/src/main/res/drawable-nodpi/img_second_hand.png differ diff --git a/app/src/main/res/drawable/img_clock_dash.xml b/app/src/main/res/drawable/img_clock_dash.xml index 9cb7d5f..21a1bc3 100644 --- a/app/src/main/res/drawable/img_clock_dash.xml +++ b/app/src/main/res/drawable/img_clock_dash.xml @@ -4,228 +4,228 @@ android:viewportWidth="200" android:viewportHeight="200"> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> + android:fillColor="#B3B3B3"/> diff --git a/app/src/main/res/layout/i_o_s_clock_widget.xml b/app/src/main/res/layout/i_o_s_clock_widget.xml index c4645d9..94579b0 100644 --- a/app/src/main/res/layout/i_o_s_clock_widget.xml +++ b/app/src/main/res/layout/i_o_s_clock_widget.xml @@ -6,7 +6,7 @@ android:background="@android:color/transparent" android:theme="@style/Theme.IOSClockWidget.AppWidgetContainer"> - + android:hand_minute="@drawable/img_minute_hand" /--> + + + + + +