티스토리 뷰
아래에 동영상 링크
class MainActivity : AppCompatActivity() {
private lateinit var TargetNo: ImageView
private lateinit var ElapsedTime: TextView
private var displayText: String = "Press the Bluetooth Remote" // Initialize with default text
private val handler = Handler(Looper.getMainLooper())
private var ElapsedTime_Seconds:Int = 0
companion object {
private const val ELAPSED_TIME_KEY = "elapsed_time"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
TargetNo = findViewById(R.id.iv_targetno)
ElapsedTime = findViewById(R.id.tv_timestring)
savedInstanceState?.let {
ElapsedTime_Seconds = it.getInt(ELAPSED_TIME_KEY, 0)
}
startTimer()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// 상태 저장
outState.putInt(ELAPSED_TIME_KEY, ElapsedTime_Seconds)
}
private fun startTimer() {
// 1초마다 현재 시간을 업데이트하여 텍스트뷰에 표시
handler.postDelayed(object : Runnable {
override fun run() {
val currentTime = SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(Date())
ElapsedTime_Seconds += 1
ElapsedTime.text = "경과 시간: $ElapsedTime_Seconds [초]"
handler.postDelayed(this, 1000) // 1초 후에 다시 호출
}
}, 1000) // 처음 실행은 1초 후에 시작
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
// Check if the back button is pressed
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Finish the activity, which will effectively close the app
finish()
return true
}
// Get the key value and the current time
val keyName = KeyEvent.keyCodeToString(keyCode)
val currentTime = SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(Date())
displayText = "Key: $keyName\nTime: $currentTime"
// Convert the text to a bitmap and set it to the ImageView
updateImageView()
return true
}
override fun onConfigurationChanged(newConfig: android.content.res.Configuration) {
super.onConfigurationChanged(newConfig)
// Update the image view with a new color on configuration change
updateImageView()
}
private fun updateImageView() {
val colors = listOf(Color.RED, Color.GREEN, Color.BLUE, Color.MAGENTA, Color.CYAN)
val color = colors.random()
val randonNo = Random.nextInt(10)
val bitmap = textToBitmap(randonNo.toString(), color)
TargetNo.setImageBitmap(bitmap)
}
private fun textToBitmap(text: String, color: Int): Bitmap {
val paint = Paint()
paint.color = color
paint.textAlign = Paint.Align.CENTER
// ImageView의 크기 가져오기
val imageViewWidth = TargetNo.width.toFloat()
val imageViewHeight = TargetNo.height.toFloat()
// 텍스트 크기를 ImageView의 크기에 맞게 조정하기
paint.textSize = imageViewHeight * 0.8f // 임의의 비율로 조정 (예: 80%)
// 텍스트 그리기
val textBounds = android.graphics.Rect()
paint.getTextBounds(text, 0, text.length, textBounds)
val bitmap = Bitmap.createBitmap(imageViewWidth.toInt(), imageViewHeight.toInt(), Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
canvas.drawText(text, imageViewWidth / 2f, (imageViewHeight + textBounds.height()) / 2f, paint)
return bitmap
}
}
반응형
'BilientSevices > BilientService' 카테고리의 다른 글
기억력 향상에 도움이 되는 '동일순' 게임 앱 다운로드 (2) | 2024.07.16 |
---|---|
기억력 향상에 도움이 되는 숫자열 게임 앱 다운로드 (0) | 2024.07.16 |
[BRAService] 서비스 개요, 샘플#3 (0) | 2024.03.16 |
[BRAService] Service Overview with Sample#2 (0) | 2024.03.11 |
[BRAService] 서비스 개요, 샘플#2 (0) | 2024.03.09 |
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 아두이노
- Innovation&Hurdles
- Video
- 혁신과허들
- 둎
- ServantClock
- Innovations
- 심심풀이치매방지기
- 배프
- 오블완
- 치매
- DYOV
- 혁신
- 절연형
- 빌리언트
- 전압전류모니터링
- Innovations&Hurdles
- bilient
- 치매방지
- Decorator
- badp
- 티스토리챌린지
- image
- BSC
- 전압
- 전류
- 심심풀이
- Hurdles
- arduino
- 허들
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함