چک کردن تیره یا روشن بودن رنگ در B4A

با سلام و سپاس خدمت کاربران عزیز سایت یاهو ۹۸

 

امروز براتون سورس کدی کاربردی در زمینه تم های تاریک و روشن و یا دلخواه در نرم افزار مهیا کرده ایم که امیدوارم مورد مفید واقع گردد.

من تو اکثر برنامه هام از تم های تاریک و روشن و یا دلخواه استفاده میکنم و برای برای این کار، لازمه که بدونم آیا رنگ انتخاب شده، تیره هست یا روشن تا بتونم بر اساس اون رنگ ویوها رو تغییر بدم.

با این کدها، براحتی میتونین چک کنین که آیا رنگ ورودی، تیره هست یا نه.

 

Private Sub isColorDark(color As Int) As Boolean
	Dim darkness As Int = 1 - (0.299 * GetARGB(color)(1) + 0.587 * GetARGB(color)(2) + 0.114 * GetARGB(color)(3))/255
	If darkness <= 0.5 Then
		Return    False 'It's a light color
	Else
		Return    True 'It's a dark color
	End If
End Sub

Sub GetARGB(Color As Int) As Int()
	Dim res(4) As Int
	res(0) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff000000), 24)
	res(1) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff0000), 16)
	res(2) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff00), 8)
	res(3) = Bit.And(Color, 0xff)
	Return res
End Sub

 

این دو ساب رو به اکتیویتی اضاف کنید و برای چک کردن، فقط از ساب اول استفاده کنید:

 

Log(isColorDark(0xFF891D1D)) 'Return True if 0xFF891D1D is dark

 

موفق باشید

 

دیدگاهتان را بنویسید