تنظیم ارتفاع لیبل بر اساس متن

با سلام .

یه آموزش خیلی کاربردی که شاید ۹۷% تون بلد نباشید

گه بخواید یه لیبل بر اساس کوتاه یا بلند بودن متن داخلش ارتفاع داشته باشه ٬ چیکار میکنید ؟

مطمئناً از کتابخونه StringUtils استفاده میکنید یا یه سری ترفند بهش میزنید.

اما !!!

فقط کافیه که موقع AddView کردن ٬ بجای ۱۰۰%y ٬ ۲- بدید.

Activity.AddView(Label, 0, 0, -1, -2)

و اگه ۱- بزارید حکم تمام صفحه رو داره انگار زدید x%100

MATCH_PARENT = -1
WRAP_CONTENT = -2

شیر(نشر) عکس و متن با اینستاگرام و تویتر توسط اینتنت

سلام و سپاس
از تابع زیر برای share عکس و متن توسط اینستاگرام و تویتر میتوانید استفاده کنید :

 

Dim u As Uri 'ContentResolver library
u.Parse("file://" & File.Combine(a, "tmpfile.jpg"))
Dim inten As Intent
Dim tmpt As String = "your text"
inten.Initialize(inten.ACTION_SEND,"")
inten.SetType("image/*")
inten.PutExtra("android.intent.extra.STREAM",u)
inten.PutExtra("android.intent.extra.TEXT",tmpt)
inten.SetComponent("com.instagram.android/.activity.ShareHandlerActivity")
StartActivity(inten)

کد بالا برای اینستاگرام برای تویتر فقط کد زیر رو جایگزین کنید :

 

inten.SetComponent("com.twitter.android/.composer.ComposerActivity")

 

توجه: کتابخانه contentResolver را تیک بزنید (کتابخانه خود بیسیک هست)

 

تکه کد ورود اجباری کاربر به کانال یا گروه یا آیدی در تلگرام

با سپاس

این تکه کد اجباری وارد میکنه ولی جوین نمیده تو بیسیک همچین امکانی هم وجود نداره که بشه جوین هم داد .

 

بیشتر از این کد در خبرنامه ها و پوش ها استفاده میکنند.

۲۳:۴۴:۳۶

۱۲/۲۰/۲۰۱۶

یلداتونم میارک و شیرین

کد اول :

Dim i As Intent
i.initialize (i.ACTION_VIEW,"@yahoo98")  
StartActivity (i)

 

کد دوم

Dim i As Intent 
 i.initialize (i.action_view,"tg://resolve?domain="&"yahoo98") 
 StartActivity (i)

 

کد سوم بدون ارور در زمانی که ارور میده

try 
Dim i As Intent i.initialize (i.action_view,"tg://resolve?domain="&"yahoo98")
 StartActivity (i) 
catch 
ToastMessageShow("تلگرام بر روی گوشی شما نصب نیست",false) 
end try

 

کد سایلنت کردن,ویبره,صدادار گوشی

با سلام و سپاس

 

با زدن تیک کتابخانه phone میتونید رویداد های زیر رو کنترل کنید :

 

  • حالت صدادار
  • حالت بیصدا
  • حالت ویبره

 

Dim k6 As Phone
حالت صدادار
k6.SetRingerMode(k6.RINGER_NORMAL)
حالت بیصدا
k6.SetRingerMode(k6.RINGER_SILENT)
حالت ویبره
k6.SetRingerMode(k6.RINGER_VIBRATE)

 

گرفتن شماره ساخت گوشی(BuildNumber)

با این تابع میتونید شماره ساخت گوشی یا همون Build Number رو بگیرید.

 

Sub BuildNumber As String
Dim j As JavaObject
Return j.InitializeStatic("android.os.Build").GetField("DISPLAY")
End Sub

 

ارسال اس ام اس و فهمیدن رفتن یا نرفتن اس ام اس

با سلام

 

دیدم همه سپاس دادن مشتاق شدم یک آموزش زیبایی دیگر هم بزارم .

 

  • اول دوتا ادیت تکست به پروژه میکنیم و یک باتن هم اضافه میکنیم.
  • دوم  به برنامه معرفی می کنیم.

 

Private syededit As EditText

Private syededit2 As EditText

Private syedbtn as button

 

  • حالا در ساب Sub Globals می نویسیم

 

Dim syed As PhoneSms
  • و بعد :

 

Sub syedbtn_click

syed.Send(syededit.Text , syededit2.Text)

End Sub
  • و برای فهمیدن رفتن اس ام اس از این ساب استفاده کنید :

 

Sub check_SmsSentStatus (Success As Boolean, ErrorMessage As String, PhoneNumber As String, Intent As Intent)

If Success=False Then

Msgbox("اس ام اس نرفت" & ErrorMessage,"ارور")

Else

Msgbox("اس ام اس رفت","و الآن دست گیرنده لس ام اس می باشد :)))")

End If

End Sub

ان شا ء الله که مفید واقه بشه …

نحوه مخفی کردن آیکون برنامه در منو ( بیسیک فور اندروید )

با سپاس

با ای نیک خط کد میشه آیکون برنامه رو از گوشی یا اندروید پاک کرد.

 

  • کافیه خط زیر رو به مانیفستتون اضافه کنید :

 

AddReplacement(android.intent.action.MAIN, unused_action)

 

یه کتابخونه هم هست در یک پست دیگه براتون میزارم.

 

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

آموزش ساختن Msgbox3 با تغییر رنگ متن و گذاشتن عکس

سلام در این آموزش یاد خواهید گرفت که چگونه یک msgbox شخصی سازی شده با امکان تغییر رنگ بسازید.
درصورت نیاز ، نیز میتوانید یک icon هم در این msgbox بگذارید.
اول باید کتابخونه ی RichString و SPDialogs رو فعال کنید.
( این کتابخونه  توی سورس این آموزش هست که باید توی پوشه ی کتابخونه ی بیسیک خودتون کپیش کنید )
تو قسمت Sub Globals هم فراخوانیش کنید به این صورت :

 

Dim msg As Msgbox3
Dim rs As RichString

 

 

حالا توی دکمه ی مورد نظر یا هرجا که قصد دارد این msgbox نمایش داده بشه این کد هارو بنویسید (که ما برای آزمایش گذاشتیمش توی Activity_Create)

 

Sub Activity_Create(FirstTime As Boolean)

rs.Initialize("{R}{T}{Blue}این{Blue}{T}{R} {U}یک{U} متن {Red}{BI}آزمایشی{Red} است :) {BI}")
rs.Color2(Colors.Blue,"{Blue}")
rs.RelativeSize2(1.5, "{R}")
rs.Typeface2("Serif","{T}")
rs.Underscore2("{U}")
rs.Color2(Colors.Red, "{Red}")
rs.Style2(rs.STYLE_BOLD_ITALIC, "{BI}")

msg.Show(rs, "عنوان", "تأیید", "", "",LoadBitmap(File.DirAssets,"syed.png"))

End Sub

 

خب اون قسمت هایی که توی خط اول فارسی هستند متن های شما در msgbox هستند.
توی خط دوم و شیشم اومدیم رنگ رو به ترتیب آبی و قرمز کردیم که شما میتونید به  دلخواه رنگ مورد نظر خودتون رو بزارید.
توی خط سوم سایز فونت رو گذاشتیم ۱٫۵ که اینو هم میتونید به دلخواه  تغییر بدید.
توی خط چهارم گفتیم فونتمون از نوع serif باشه (که این برای نوشته های انگلیسی فقط کاربرد داره).
توی خط پنجم گفتیم متنمون Underline باشه (یعنی زیرش خط کشیده شده باشه).
خط شیشم رو هم که قبلاً گفتم رنگ قرمز هست.
خط هفتم هم متن رو هم بولد و هم  ایتالیک میکنه (یعنی هم درشتش میکنه و هم کجش میکنه).
برای مثال میتونید با کد های اختصاری فوق که یکیشون {Blue} هست متن نوشته های msgbox خودتون رو آبی کنید.
چطوری ؟ فقط کافیه توی ( خط اول کد ها ) اول و آخر متن تون بنویسید {Blue}
برای مثال : {Blue}  سلام این نوشته آبی است {Blue}
بقیه کد های اختصاری هم به همین صورت…

توی خط هشتم میایم عنوان پیغام , گزینه های تأیید ، بله و خیر رو اضافه میکنیم (چجوریش رو توی سورس مثال آموزش دادم)
آخرش هم که اومدیم عکس دلخواهمون رو لود کردیم
اگه نخواستید عکس نشون داده بشه بجای :

 

LoadBitmap(File.DirAssets,"syed.png")

 

فقط بنویسید Null

 

دادن حالت کاشی برای بکگراند یک ویو

Sub SetTiledBackground(v as View, b as Bitmap)
  Dim bd As BitmapDrawable
  bd.Initialize(b)

  Dim r As Reflector
  r.Target = bd
  r.RunMethod3("setTileModeXY","REPEAT", "android.graphics.Shader$TileMode", _
                        "REPEAT", "android.graphics.Shader$TileMode")
  v.Background = bd
End Sub

اول ساب بالا رو در پروژه‌ خودتون قرار بدید بعد فراخوانیش کنید :

 

SetTiledBackground(Activity, LoadBitmap(File.DirAssets("TileBG.png")))

 

پارامتر ویویی که میدید هر ویویی میتونه باشه

مدیریت روشن ماندن صفحه گوشی

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

و بعد به صورت زیر عمل میکنیم :

 

Sub Globals

Dim PW As PhoneWakeState
         
End Sub

برای جلوگیری از خاموش شدن گوشی در سرویس یا اکتیویتی :

pw.KeepAlive(True)

 

برای غیرفعال کردن حالت بالا :

pw.ReleaseKeepAlive

تنظیم رنگ شیب دار به صورت عمودی برای متن Label

با این کد میتوانید رنگ متن Label,Buton,EditText را شیب دار کنید

اول از همه کتابخانه JavaObject را تیک بزنید. بعد کد Inline و تابع زیر را در اکتیویتی خود قرار دهید.

 

Sub SetLabelTVGC(Label As Label,StartColor As Int,EndColor As Int)
Dim j As JavaObject
J.InitializeContext.RunMethod("setLabelTextGradientColor",Array(Label,StartColor,EndColor))
End Sub

#If Java
import android.graphics.*;
public void setLabelTextGradientColor(android.widget.TextView tv,int startColor,int endColor){
tv.getPaint().setShader(new LinearGradient(0,0,0,tv.getLineHeight(), startColor, endColor, Shader.TileMode.REPEAT));
}
#End If

 

حال برای شیب دار کردن متن Label یا… کد زیر را بنویسید

عکس گرفتن از از View

با این کد میتوانید از یک View عکس بگیرید این کد تمام محتویات ان View را شامل میشود مثلا اگر آن ویو Panel باشد از ویو هایی که برروی آن قرار دارد نیز عکس میگیرد.

 

Public Sub GetShotFromView(View As View) As Bitmap
Dim scrshot As Bitmap
Dim J = View,Jo As JavaObject
J.RunMethod ("setDrawingCacheEnabled",Array (True))
scrshot = Jo.InitializeStatic ("android.graphics.Bitmap").RunMethod ("createBitmap",Array (J.RunMethod ("getDrawingCache",Null)))
J.RunMethod ("setDrawingCacheEnabled",Array (False))
Return scrshot
End Sub

 

 

نحوه استفاده:

 

GetShotFromViw(View)

 

به جای View متغیر View مورد نظر خود را قرار دهید این تابع یک Bitmap خروجی میدهد که میتوانید از آن استفاده کنید.

ارسال ایمیل با Smtp (از داخل خود برنامه)

با سلام

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

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

یه شیئ از نوع SMTP ایجاد میکنیم.

dim SMTP as SMTP

بهتره یه شرط قرار بدید که اگه بار اوله که این اکتیوتی باز شده، اینیشیالایزش کنه
توجه کنید که نمیشه از فایل تکست استفاده کرد
چون نیازه که هر بار برنامه باز میشه، یکبار اینیشیالایز بشه این شیئ

Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
SMTP.Initialize("smtp.gmail.com", 587, "gmail", "password", "SMTP")
SMTP.StartTLSMode = True
End If
EndSub

 

خوب
اینجا یه توضیح لازم دار
شما باید یه اکانت Gmail باز کنید تا برنامه ، با استفاه از اون اکانت، ایمیل هارو بفرسته
در بالا به جای Gmail ، ادرس ایمیلتون رو بدید و به جای Password هم رمز عبور این ایمیلی که ساختید رو قرار بدید

در رویداد کلیک دکمه ارسال، میاین و کدهای زیر رو قرار میدید

SMTP.To.Add("syed@yahoo.com")
SMTP.Subject = "test"
SMTP.Body = "سلام، این برای تست است "
SMTP.Send
ProgressDialogShow("Sending...")

 

در این قسمت، ادرس ایمیلی رو قرار میدید که این ایمیل ، قراره بهش ارسال شه…
مثلا من میخوام ایمیلی که میفرستم بره به syed@yahoo.com
subject :
مشخصه ، تیتر ایمیلتون هست…
body هم که بدنه ایمیل و پیام اصلیتون رو تشکیل میده
در اخر، از متد SMTP.SEND اشتفاده میکنیم تا ارسال شه و یک پراگرسس مسیح نشونمون بده که در حال ارساله
خوب
کار الان تمومه
اما برای کامل تر شدن،
میاین از تنها sub این متد، استفاده میکنید

 

Sub SMTP_MessageSent(Success As Boolean)
Log(Success)
If Success Then
ProgressDialogHide
ToastMessageShow("پیغام شما با موفیت ارسال شد ", True)
Else
ProgressDialogHide
ToastMessageShow("خطا!!!", True)
Log(LastException.Message)
End If
End Sub

 

ساب بالا بررسی میکنه که ایمیل ارسال شد یا نه .

نکته :
۱- این روش ارسال ایمیل امنیت ندارد و پسورد شما در خطر .
۲- کافه بازار این روش را قبول ندارد وبرنامه شما را تایید نمی کند .
۳- (مهم) برای ارسال شدن باید در تنظیمات جیمیل اجازه بدید به برنامه های با امنیت کمتر.
۴- دسترسی اینترنت هم فراموش نشه .

تغییر cursor اسکرول ویو از سمت چپ به سمت راست

دقت کنید این عمل از api 15 به بعد پشتیبانی میشه
لایبرری های مورد نیاز : phone

dim sdk as Phone
If sdk.SdkVersion>14 Then
Dim r As JavaObject=ScrollView
r.RunMethod("setVerticalScrollbarPosition",Array As Object(1))
End If