با تابع ShadeColor میتونید یه رنگ رو حالت سایه بهش بدید خیلی جالب میشه
Sub ShadeColor(clr As Int) As Int
Dim argb() As Int = GetARGB(clr)
Dim factor As Float = 0.75
Return Colors.RGB(argb(1) * factor, argb(2) * factor, argb(3) * factor)
End Sub
Sub GetARGB(Color As Int) As Int()
Private 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
حتما تا حالا دیدی با فعال کردن کتابخانه AppCompat در برنامه , یک سایه به صورت پیشفرض به دکمه های برنامه اضافه میشود که در برخی از مواقع ممکن است زیبایی برنامه را از بین ببرد …
برای غیر فعال سازی این امر کافیه تکه کد زیر به به منیفستتون اضافه کنید :
شاید براتون پیش اومده بخواین همون صدای زنگی که کاربر برای گوشیش تنظیم کرده رو بگیرید و پخشش کنید.
با کد زیر این عمل قابل اجراست :
Dim jo As JavaObject
jo.InitializeStatic("android.media.RingtoneManager")
Dim context As JavaObject = Activity
context = context.RunMethod("getContext", Null)
Dim r As Reflector
r.Target = "ContentDir"
r.Target = r.RunMethod("intern")
Dim mp As MediaPlayer
mp.Initialize
mp.Load(r.Target, jo.RunMethod("getActualDefaultRingtoneUri", Array As Object(context, 1)))
mp.Play
با تکه کد زیر میتوانید حروف و اعداد رو جداسازی کنید.
Public Sub getmatch(matn As String) As List
Dim l As List
l.Initialize
Dim reqstr() As String=Regex.Split("#",matn)
For Each str As String In reqstr
l.Add(str.Replace("^",""))
Next
Return l
End Sub
نحوه استفاده هم به این شکله
Dim l As List=getmatch("^one^#1#^two^#2#^three^#3#")
For Each mm As String In l
Log("word: "&mm)
Next
امروز یکی از کاربران تکه کد سایه دادن به text ها رو برای ما ارسال کرده که به آن می پردازیم :
این کد ساده و ساب ساده به نوشته های درون یک ویو مثل لیبل سایه خیلی زیبایی رو میده که میتونید مقدار جا و رنگ سایه رو هم تنظیم کنید و عالی
موفق باشید.
Sub SetTextShadow(pView As View, pRadius As Float, pDx As Float, pDy As Float, pColor As Int)
Dim ref As Reflector
ref.Target = pView
ref.RunMethod4("setShadowLayer", Array As Object(pRadius, pDx, pDy, pColor), Array As String("java.lang.float", "java.lang.float", "java.lang.float", "java.lang.int"))
End Sub
در این بخش میخواهیم تغییراتی را در برنامه انجام دهیم تا با توجه به زبان گوشی کاربر , نام برنامه نیز تغییر کند ! برای مثال اگر زبان گوشی کاربر فارسی است نام برنامه نیز فارسی باشد و در غیر اینصورت نام برنامه انگلیسی باشد !
برای شروع وارد پوشه سورس برنامه مورد نظرتان شوید و در پوشه Objects \ resدو پوشه با نام های زیر ایجاد کنید :
values-en
values-fa
تا اینجا ما برای دو زبان “فارسی – fa” و “انگلیسی – en” پوشه ساخته ایم .
داخل هرکدام از این پوشه ها باید یک فایل با نام stringsبا فرمت xmlایجاد کنید و کد زیر را داخل آن قرار دهید .
برای اینکار میتوانید از نرم افزار NotePad یا سایر ویرایشگر های متن کمک بگیرید و توجه داشته باشید که فایل را از نوع utf-8 ذخیره کنید تا از زبان فارسی پشتیبانی کند .
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name = "AppName">یاهو ۹۸</string>
</resources>
در کد بالا به جای “یاهو ۹۸” نام مورد نظرتان را جایگزین کنید و چون نام بالا فارسی است این فایل را در پوشه values-fa ذخیره میکنیم .
مجددا یک فایل دیگر به همین شکل ایجاد کنید و نام برنامه را انگلیسی وارد کنید و در پوشه values-en ذخیره کنید .
نکته مهم این است که باید دسترسی این فایل ها را روی Road Only قرار دهید ( روی فایل راست کلیک کنید و گزینه Properties را انتخاب کنید.
در کادری که باز میشود گزینه Read-Only را تیک بزنید و بر روی OK کلیک کنید ) و باید حتما این کار را انجام دهید و در غیر اینصورت فایل ها در هنگام خروجی گرفتن از برنامه حذف میشوند …
وارد بیسیک فور اندروید شوید و کد های زیر را به Manifest اضافه کنید :
اس ام اس بلند ( طولانی ) رو در بیسیک فور اندروید ارسال کنید که به مشکل عدم ارسال بر بخورید.
با تابع زیر میتونید کامل این مشکل رو برطف کنید و محدودیت رو بردارید.
Sub SendLargeSms(Number As String , Message As String)
Dim r As Reflector
r.Target = r.RunStaticMethod("android.telephony.SmsManager", "getDefault", Null, Null)
Dim parts As Object
parts = r.RunMethod2("divideMessage", Message, "java.lang.String")
r.RunMethod4("sendMultipartTextMessage", _
Array As Object(Number, Null, parts, Null, Null), _
Array As String("java.lang.String", "java.lang.String", _
"java.util.ArrayList", "java.util.ArrayList", "java.util.ArrayList"))
End Sub
در این کد با استفاده از Reflection و دسترسی به کدجاوا تابعی بدین منظور نوشته شده است.
اکر کتابخانه مورد نظر در دسترس شما قرار نداشت کافیه فقط با آیدی تلگرام ما در ارتباط باشید.