رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.
شایان آباد

Capture complete Panel to imageview

پست های پیشنهاد شده

شایان آباد    6,137

بنیان گذار و مدیر فنی

Sub Button1_Click

PanelCapture(Panel1,cardb2)

End Sub

 

Sub PanelCapture(pnl As Panel, Img2 As ImageView)

 

Dim Obj1, Obj2 As Reflector

Dim bmp As Bitmap

Dim c As Canvas

Obj1.Target = Obj1.GetActivityBA

Obj1.Target = Obj1.GetField("vg")

bmp.InitializeMutable(pnl.left + pnl.Width, pnl.Top + pnl.Height)

c.Initialize2(bmp)

Dim args(1) As Object

Dim types(1) As String

Obj2.Target = c

Obj2.Target = Obj2.GetField("canvas")

args(0) = Obj2.Target

types(0) = "android.graphics.Canvas"

Obj1.RunMethod4("draw", args, types)

 

Dim canvas1 As Canvas

canvas1.Initialize(Img2)

Dim scrt As Rect

scrt.Initialize(pnl.left, pnl.top, pnl.left + pnl.Width, pnl.Top + pnl.Height)

Dim rectPanel1 As Rect

rectPanel1.Initialize(0, 0,Img2.Width, Img2.Height)

canvas1.DrawBitmap(bmp, scrt , rectPanel1)

Img2.Invalidate

End Sub

 

 

#Region Project Attributes

#ApplicationLabel: B4A Example

#VersionCode: 1

#VersionName: test

#SupportedOrientations: portrait

#CanInstallToExternalStorage: False

#End Region

 

#Region Activity Attributes

#FullScreen: False

#IncludeTitle: True

#End Region

 

Sub Process_Globals

Dim t1 As Timer

End Sub

 

Sub Globals

Private Button2 As Button

Private img1 As ImageView

Private pnl1 As Panel

End Sub

 

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("main")

t1.Initialize("t1",3000)

t1.Enabled = True

drawsomething

End Sub

 

Sub Activity_Resume

End Sub

 

Sub Activity_Pause (UserClosed As Boolean)

End Sub

 

Sub drawsomething

Dim Obj1 As Reflector

Dim Canv As Canvas

Canv.Initialize(pnl1)

Obj1.Target = Canv

Obj1.Target = Obj1.GetField("paint")

Obj1.RunMethod2("setAntiAlias", True, "java.lang.boolean")

 

Dim rect1 As Rect

rect1.Initialize(0,0,50%x,50%y)

 

Dim nr As Int = Rnd(0,3)

If nr = 0 Then Canv.DrawCircle(50dip, 50dip, 25dip, Colors.RGB(Rnd(0,255),Rnd(0,255),Rnd(0,255)), True, 2dip)

If nr = 1 Then Canv.DrawRect(rect1, Colors.RGB(Rnd(0,255),Rnd(0,255),Rnd(0,255)), True, 5dip)

If nr = 2 Then Canv.DrawText("Panel Capture", 100dip, 100dip, Typeface.DEFAULT,24, Colors.RGB(Rnd(0,255),Rnd(0,255),Rnd(0,255)),"LEFT")

End Sub

 

Sub t1_tick

drawsomething

End Sub

 

Sub Button2_Click

PanelCapture(pnl1,img1)

End Sub

 

Sub PanelCapture(pnl As Panel, Img2 As ImageView)

 

Dim Obj1, Obj2 As Reflector

Dim bmp As Bitmap

Dim c As Canvas

Obj1.Target = Obj1.GetActivityBA

Obj1.Target = Obj1.GetField("vg")

bmp.InitializeMutable(pnl.left + pnl.Width, pnl.Top + pnl.Height)

c.Initialize2(bmp)

Dim args(1) As Object

Dim types(1) As String

Obj2.Target = c

Obj2.Target = Obj2.GetField("canvas")

args(0) = Obj2.Target

types(0) = "android.graphics.Canvas"

Obj1.RunMethod4("draw", args, types)

 

Dim canvas1 As Canvas

canvas1.Initialize(Img2)

Dim scrt As Rect

scrt.Initialize(pnl.left, pnl.top, pnl.left + pnl.Width, pnl.Top + pnl.Height)

Dim rectPanel1 As Rect

rectPanel1.Initialize(0, 0,Img2.Width, Img2.Height)

canvas1.DrawBitmap(bmp, scrt , rectPanel1)

Img2.Invalidate

End Sub

 

 

به اشتراک گذاری این ارسال


لینک به ارسال

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • کاربران آنلاین در این صفحه   0 کاربر

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

×