قفل کردن ادیت تکست (Edit text)

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

Sub setTextIsSelectable(edt As EditText, Selectable As Boolean)
    Dim jo = edt As JavaObject
    jo.RunMethod("setTextIsSelectable", Array As Object(Selectable))
End Sub

لایبرری مورد نیاز : javaobject

 

 

بخش فیلم بوسیله ی نرم افزار mx player

با این کد شما میتوانید فیلم و کلیپ مورد نظر خودتان را چه از فضای وب به صورت استریم و چه به صورت بافرینگ یعنی آپلود شده در فضای گوشی خودتان رو به mx player  بدید و اون برای شما فیلم رو پلی کنه دقت کنید بهتر قبل از این کار چک کنید که کاربر مورد نظر نرم افزار mx player را نصب دارد یا خیر دقت کنید دو خط کد آخر مثالی از این کار هستن .

Sub MXPlayer(sUrl As String)
    Dim Intent1 As Intent
    Intent1.Initialize(Intent1.ACTION_VIEW,sUrl)
    Intent1.SetComponent("com.mxtech.videoplayer.ad/.ActivityScreen")
    StartActivity(Intent1)
End Sub
برای فراخوانی تابع بالا کافیه یا آدرس اینترنتی فیلم رو بدید یا ادرس یه فیلم داخل حافظه گوشی خودتون
مثلا 
MxPlayer(File.Combine(File.DirrootExternal,"a.mp4"))
یا پخش اینترنتی
MxPlayer("http:/www.quicklearn.ir/a.mp4")

 

دادن سایه به متن

با این تکه کد شما میتوانید به متن نظر شما مثلا یک لیبل سایه بدید و اندازه ی سایه را نیز مشخص کنید که چند دیپ باشه دقت کنید تکه کد اخر صرفا یه مثال هست.
لایبرری های مورد نیاز : reflection

 

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
SetTextShadow(Label,5,0,1,0xFF1398DB)

 

باز کردن مخاطبین گوشی و انتخاب شماره و اسم و قرار دادن درون ادیت تکست

همانگونه که مستحضرید کد یا کتابخونه انتخاب مخاطب قوی و بدون باگ وجود نداره و از طرفی هم بدلیل تفاوت در ورژن های مختلف اندروید و …

مشکلاتی بوجود میاره مثلا مقدار برگشتی آرایه ها در بعضی گوشیها فرق میکنه. من هم اومدم با رجکس و همچنین تست روی گوشیهای مختلف و همچنین شماره های مختلف(فاصله دار-شماره خارج باشه-مثبت داشته باشه و..) یه چیز تمییزی ساختم.
نکته ۱: همیشه سعی کنین مثبت نود هشت شماره ها رو به صفر تبدیل کنین که من در این کد هم اینکارو کردم.
نکته۲: اگر مخاطبی شماره نداشته باشه کچ میشه و پیغام بهش میدیم که این مخاطب قابل انتخاب نیست.
نکته۳: شما کافیه توی دیزاینر دو تا ادیت تکست و یک باتن بسازین.
نکته۴: این کد رو هم در منفیست بزارین.

AddPermission(android.permission.READ_CONTACTS)

 

Sub Globals
Dim contact As ContactPicker
Private EditText1 As EditText
Private EditText2 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("1")
contact.Initialize(Me)
End Sub

Sub Button1_Click
contact.ShowContactPicker
End Sub

Sub ContactSelected(Value As ContactItem)
Try
EditText1.Text = Value.Name
Dim stx2() As String
stx2=Regex.Split("Number=",Value.PhoneNumber.Get(0))
Dim stx3() As String
stx3=Regex.Split(",",stx2(1))
stx3(0)=stx3(0).Replace("+980","0").Replace("00980","0").Replace(" ","").Replace("-","").Replace("/","").Replace("\","").Replace("_","").Replace(",","").Replace(".","").Replace("+98","0").Replace("0098","0").Replace("(","").Replace(")","")
EditText2.Text=stx3(0)
Catch
ToastMessageShow("این مخاطب قابل انتخاب نیست",True)
End Try
End Sub

 

بسته نشدن برنامه

سلام

گاهی اوقات پیش میاد بنا به دلایلی شاید دلتون نخواد با خروج کاربر از برنامه ، برنامتون بسته بشه

و برای ورود مجدد حالا یا زیاد طول بکشه یا اطلاعات از بین بره یا هر چیز دیگه ای

وقتی این کد رو بنویسید دکمه ی Back از کار میوفته تا برنامتون Pause نشه و کلید Back تبدیل به کلید Home میشه

کاربر Back رو میزنه اما در حقیقت Home زده میشه,البته با تسک کلیر برنامه بسته میشه

 

Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
	If KeyCode = KeyCodes.KEYCODE_BACK Then
	Dim i As Intent
    i.Initialize(i.ACTION_MAIN, "")
    i.AddCategory("android.intent.category.HOME")
    i.Flags = 0x10000000
    StartActivity(i)
	End If
	Return True
End Sub

 

لیست مجوزها و حذف دسترسی یا مجوز(RemovePermission)

لیست مجوزها(دسترسی) یا همون Permissions

حذف دسترسی یا مجوز(RemovePermission)

سلام
شاید براتون پیش اومده که برنامه رو فرستادید بازار و بازار گیر داده فلان دسترسی اضافه است.
خب برای حذف دسترسی این کد رو وارد مانیفست میکنیم.داخل پرانتز اون دسترسی رو میزاریم.
مثلا

RemovePermission(android.permission.INTERNET)

 

لیست کامل دسترسی ها به صورت یک جا :

 

AddPermission(android.permission.ACCESS_CHECKIN_PROPERTIES)

AddPermission(android.permission.ACCESS_COARSE_LOCATION)

AddPermission(android.permission.ACCESS_FINE_LOCATION)

AddPermission(android.permission.ACCESS_LOCATION_EXTRA_COMMANDS)

AddPermission(android.permission.ACCESS_MOCK_LOCATION)

AddPermission(android.permission.ACCESS_NETWORK_STATE)

AddPermission(android.permission.ACCESS_SURFACE_FLINGER)

AddPermission(android.permission.ACCESS_WIFI_STATE)

AddPermission(android.permission.ACCOUNT_MANAGER)

AddPermission(android.permission.ADD_VOICEMAIL)

AddPermission(android.permission.AUTHENTICATE_ACCOUNTS)

AddPermission(android.permission.BATTERY_STATS)

AddPermission(android.permission.BIND_ACCESSIBILITY_SERVICE)

AddPermission(android.permission.BIND_APPWIDGET)

AddPermission(android.permission.BIND_DEVICE_ADMIN)

AddPermission(android.permission.BIND_INPUT_METHOD)

AddPermission(android.permission.BIND_NFC_SERVICE)

AddPermission(android.permission.BIND_NOTIFICATION_LISTENER_SERVICE)

AddPermission(android.permission.BIND_PRINT_SERVICE)

AddPermission(android.permission.BIND_REMOTEVIEWS)

AddPermission(android.permission.BIND_TEXT_SERVICE)

AddPermission(android.permission.BIND_VPN_SERVICE)

AddPermission(android.permission.BIND_WALLPAPER)

AddPermission(android.permission.BLUETOOTH)

AddPermission(android.permission.BLUETOOTH_ADMIN)

AddPermission(android.permission.BLUETOOTH_PRIVILEGED)

AddPermission(android.permission.BRICK)

AddPermission(android.permission.BROADCAST_PACKAGE_REMOVED)

AddPermission(android.permission.BROADCAST_SMS)

AddPermission(android.permission.BROADCAST_STICKY)

AddPermission(android.permission.BROADCAST_WAP_PUSH)

AddPermission(android.permission.CALL_PHONE)

AddPermission(android.permission.CALL_PRIVILEGED)

AddPermission(android.permission.CAMERA)

AddPermission(android.permission.CAPTURE_AUDIO_OUTPUT)

AddPermission(android.permission.CAPTURE_SECURE_VIDEO_OUTPUT)

AddPermission(android.permission.CAPTURE_VIDEO_OUTPUT)

AddPermission(android.permission.CHANGE_COMPONENT_ENABLED_STATE)

AddPermission(android.permission.CHANGE_CONFIGURATION)

AddPermission(android.permission.CHANGE_NETWORK_STATE)

AddPermission(android.permission.CHANGE_WIFI_MULTICAST_STATE)

AddPermission(android.permission.CHANGE_WIFI_STATE)

AddPermission(android.permission.CLEAR_APP_CACHE)

AddPermission(android.permission.CLEAR_APP_USER_DATA)

AddPermission(android.permission.CONTROL_LOCATION_UPDATES)

AddPermission(android.permission.DELETE_CACHE_FILES)

AddPermission(android.permission.DELETE_PACKAGES)

AddPermission(android.permission.DEVICE_POWER)

AddPermission(android.permission.DIAGNOSTIC)

AddPermission(android.permission.DISABLE_KEYGUARD)

AddPermission(android.permission.DUMP)

AddPermission(android.permission.EXPAND_STATUS_BAR)

AddPermission(android.permission.FACTORY_TEST)

AddPermission(android.permission.FLASHLIGHT)

AddPermission(android.permission.FORCE_BACK)

AddPermission(android.permission.GET_ACCOUNTS)

AddPermission(android.permission.GET_PACKAGE_SIZE)

AddPermission(android.permission.GET_TASKS)

AddPermission(android.permission.GET_TOP_ACTIVITY_INFO)

AddPermission(android.permission.GLOBAL_SEARCH)

AddPermission(android.permission.HARDWARE_TEST)

AddPermission(android.permission.INJECT_EVENTS)

AddPermission(android.permission.INSTALL_LOCATION_PROVIDER)

AddPermission(android.permission.INSTALL_PACKAGES)

AddPermission(android.permission.INSTALL_SHORTCUT)

AddPermission(android.permission.INTERNAL_SYSTEM_WINDOW)

AddPermission(android.permission.INTERNET)

AddPermission(android.permission.KILL_BACKGROUND_PROCESSES)

AddPermission(android.permission.LOCATION_HARDWARE)

AddPermission(android.permission.MANAGE_ACCOUNTS)

AddPermission(android.permission.MANAGE_APP_TOKENS)

AddPermission(android.permission.MANAGE_DOCUMENTS)

AddPermission(android.permission.MASTER_CLEAR)

AddPermission(android.permission.MEDIA_CONTENT_CONTROL)

AddPermission(android.permission.MODIFY_AUDIO_SETTINGS)

AddPermission(android.permission.MODIFY_PHONE_STATE)

AddPermission(android.permission.MOUNT_FORMAT_FILESYSTEMS)

AddPermission(android.permission.MOUNT_UNMOUNT_FILESYSTEMS)

AddPermission(android.permission.NFC)

AddPermission(android.permission.PERSISTENT_ACTIVITY)

AddPermission(android.permission.PROCESS_OUTGOING_CALLS)

AddPermission(android.permission.READ_CALENDAR)

AddPermission(android.permission.READ_CALL_LOG)

AddPermission(android.permission.READ_CONTACTS)

AddPermission(android.permission.READ_EXTERNAL_STORAGE)

AddPermission(android.permission.READ_FRAME_BUFFER)

AddPermission(android.permission.READ_HISTORY_BOOKMARKS)

AddPermission(android.permission.READ_INPUT_STATE)

AddPermission(android.permission.READ_LOGS)

AddPermission(android.permission.READ_PHONE_STATE)

AddPermission(android.permission.READ_PROFILE)

AddPermission(android.permission.READ_SMS)

AddPermission(android.permission.READ_SOCIAL_STREAM)

AddPermission(android.permission.READ_SYNC_SETTINGS)

AddPermission(android.permission.READ_SYNC_STATS)

AddPermission(android.permission.READ_USER_DICTIONARY)

AddPermission(android.permission.REBOOT)

AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)

AddPermission(android.permission.RECEIVE_MMS)

AddPermission(android.permission.RECEIVE_SMS)

AddPermission(android.permission.RECEIVE_WAP_PUSH)

AddPermission(android.permission.RECORD_AUDIO)

AddPermission(android.permission.REORDER_TASKS)

AddPermission(android.permission.RESTART_PACKAGES)

AddPermission(android.permission.SEND_RESPOND_VIA_MESSAGE)

AddPermission(android.permission.SEND_SMS)

AddPermission(android.permission.SET_ACTIVITY_WATCHER)

AddPermission(android.permission.SET_ALARM)

AddPermission(android.permission.SET_ALWAYS_FINISH)

AddPermission(android.permission.SET_ANIMATION_SCALE)

AddPermission(android.permission.SET_DEBUG_APP)

AddPermission(android.permission.SET_ORIENTATION)

AddPermission(android.permission.SET_POINTER_SPEED)

AddPermission(android.permission.SET_PREFERRED_APPLICATIONS)

AddPermission(android.permission.SET_PROCESS_LIMIT)

AddPermission(android.permission.SET_TIME)

AddPermission(android.permission.SET_TIME_ZONE)

AddPermission(android.permission.SET_WALLPAPER)

AddPermission(android.permission.SET_WALLPAPER_HINTS)

AddPermission(android.permission.SIGNAL_PERSISTENT_PROCESSES)

AddPermission(android.permission.STATUS_BAR)

AddPermission(android.permission.SUBSCRIBED_FEEDS_READ)

AddPermission(android.permission.SUBSCRIBED_FEEDS_WRITE)

AddPermission(android.permission.SYSTEM_ALERT_WINDOW)

AddPermission(android.permission.TRANSMIT_IR ALLOWS)

AddPermission(android.permission.UNINSTALL_SHORTCUT)

AddPermission(android.permission.UPDATE_DEVICE_STATS)

AddPermission(android.permission.USE_CREDENTIALS)

AddPermission(android.permission.USE_SIP)

AddPermission(android.permission.VIBRATE)

AddPermission(android.permission.WAKE_LOCK)

AddPermission(android.permission.WRITE_APN_SETTINGS)

AddPermission(android.permission.WRITE_CALENDAR)

AddPermission(android.permission.WRITE_CALL_LOG)

AddPermission(android.permission.WRITE_CONTACTS)

AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)

AddPermission(android.permission.WRITE_GSERVICES)

AddPermission(android.permission.WRITE_HISTORY_BOOKMARKS)

AddPermission(android.permission.WRITE_PROFILE)

AddPermission(android.permission.WRITE_SECURE_SETTINGS)

AddPermission(android.permission.WRITE_SETTINGS)

AddPermission(android.permission.WRITE_SMS)

AddPermission(android.permission.WRITE_SOCIAL_STREAM)

AddPermission(android.permission.WRITE_SYNC_SETTINGS)

AddPermission(android.permission.WRITE_USER_DICTIONARY)

سورس افکت چرخش لیبل در b4a

سورس افکت چرخش لیبل در b4a

 

werwerwe.gif

 

#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim timer1 As Timer
	Dim timer2 As Timer
	Dim timer3 As Timer
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

	Private Label1 As Label
	Private Label2 As Label
	Private Label3 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("Layout1")

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub timer1_tick
	Label1.Top =Label1.Top - 1
    If Label1.Top = -15%y Then
    Label1.Top = 101%y
    End If
End Sub

Sub timer2_tick
	Label2.Left =Label2.Left - 1
    If Label2.Left = -15%y Then
    Label2.Left = 101%y
    End If
End Sub

Sub timer3_tick
	Label3.Left =Label3.Left + 1
	If Label3.Left = 100%x Then
	Label3.Left = -65%x
	End If
End Sub

Sub Button1_Click
	timer1.Initialize("timer1",20)
    timer1.Enabled = True
	'
	timer2.Initialize("timer2",20)
    timer2.Enabled = True
	'
	timer3.Initialize("timer3",20)
    timer3.Enabled = True
End Sub

 

ممنوع کردن اسکرین شات و اسکرین کپچر

با سلام

حتما شده که بخواین کسی نتونه از اپلیکیشنتون اسکرین شات بگیره یا اسکرین کپچر(فیلم برداری).

با این کد جاوا که قرار میدم براتون دیگه کسی نمیتونه از برنامتون اسکرین شات یا اسکرین کپچر(فیلم برداری) ، بگیره .

 

فقط کافیه که این کد رو کنار ساب Activity_Create بذارید.

 

#If Java
import android.content.Context;
import android.view.WindowManager.*;
public void _onCreate() {
this.getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
}
#End If

 

با این کد هم فراخوانی کنید :

 

Dim r As Reflector
Dim j As JavaObject
j.InitializeContext.RunMethod("DisableScreenShot",Array As Object(r.GetActivity))

کد بالا خطا گرفت کد پایین رو جاییگزین کنید :

 

Dim jo As JavaObject
jo.InitializeContext
jo.RunMethodJo(“getWindow”,Null).RunMethod("setFlags",Array(8192, 8192))

 

با این کد جاوای خالی هم میتونید این عمل رو انجام بدید :

 

#If Java
import android.content.Context;
import android.view.WindowManager.*;
public void _onCreate() {
this.getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
}
#End If

 

موفق باشید.

اضافه کردن آیکون به تولبار متریال

با سلام

با این قطعه کد میتونین به تولبار متریال آیکون اضافه کنید .

نکته : ابتدا کتابخانه XmlLayoutBuilder را فعال کنید.

 

Dim xml As XmlLayoutBuilder
Dim bd As BitmapDrawable
bd = xml.GetDrawable("ic_settings_white_24dp.png")
Activity.AddMenuItem3("settings", "Menu", bd.Bitmap, True)

البته قبلا باید از سایتهایی مثل این:
materialdesignicons.com

آیکنها رو دانلود کرده باشید و به صورت سورس جدا به پروژه اضافه کرده باشین. برای توضیحات بیشتر آموزش ساخت کتاب متریال از همین سایت رو ببینید.

تابع بررسی صحت کد ملی

با سلام

با این تابع میتونین برسی کنین که کد ملی وارد شده صحت داره یا نه .

درواقع کد ملی  یه سری روابط بین اعدادش هست که اگر اون روابط صحیح نباشه کدملی صحت نداره

 

Sub CheckMelliCode(MelliCode As String)As Boolean
	Dim b As Boolean 
	Dim sCodePosition(10) As String
	Dim iCodePosition(10) As String
	
	Dim resultStep1,resultStep2,resultStep3 As Int
	
	If MelliCode.Length = 10 Then 
		
		For i = 0 To 9 
			sCodePosition(i) = MelliCode.CharAt(i)
			iCodePosition(i) = sCodePosition(i)	
		Next
	
		resultStep1 = (iCodePosition(0)*10)+(iCodePosition(1)*9)+(iCodePosition(2)*8)+(iCodePosition(3)*7)+(iCodePosition(4)*6)+(iCodePosition(5)*5)+(iCodePosition(6)*4)+(iCodePosition(7)*3)+(iCodePosition(8)*2)	
		resultStep2 = (resultStep1 mod 11)
		resultStep3 = 11 - resultStep2	
			If resultStep2 < 2 Then 
				If resultStep2 = iCodePosition(9) Then 
					b = True
					Return b
				Else 
	               	b = False 
					Return b 
				End If  		
			Else
						If resultStep3 = iCodePosition(9) Then 
							b = True 
							Return b 
						Else
						 	b = False 
				            Return b
						End If 		
			End If 	
	Else 	
			b = False 
			Return b
	End If

End Sub

 

گرفتن یک تصویر بند انگشتی(Thumbnail) از ویدیو – برای ساخت گالری

سلام،

توی یه پروژه ای به همین مورد برخوردم، قبلاً توی تاپیکی گفته شده بود از کتابخانه MediaBrowser استفاده کنید… میشه اما اصلا عملکردش درست و بهینه نیست، چون نمیشه با دادن آدرس و نام فایل ویدیو ازش یه تصویر گرفت، باید میومدیم کل ویدیوهای گوشی رو لیست میکردیم و تازه اون ویدیو مورد نظرو نمیدونم باچی پیدا میکردیم و با استفاده از ID یک عکس از ویدیو میگرفتیم.

 

اما بااین روش با استفاده از یک تابع ساده در جاوا میتونیم یک Bitmap از تصویر بند انگشتی ویدیو بدست بیاریم:

#if java
import android.graphics.Bitmap;
import android.provider.MediaStore.Video.Thumbnails;
import android.media.ThumbnailUtils;

	public Bitmap getThumbnail(String path){
		return ThumbnailUtils.createVideoThumbnail(path, Thumbnails.MICRO_KIND);
	}
#end if

 

و با استفاده از این کد عکس مورد نظر رو از ویدیو میگیریم:

 

مسیر ویدیو هم که مشخصه باید کجا داد…

bitmap1 هم همون تصویر بند انگشتی از ویدیو هست که میتونید هرجا دوس دارید نمایشش بدید.

 

Dim j As JavaObject:j.InitializeContext
Dim bitmap1 As Bitmap=j.RunMethod("getThumbnail",Array As Object(File.Combine(File.DirRootExternal,"video.mp4")))

 

 

کتابخانه JavaObject هم یادتون نره تیک بزنید.