رفتن به مطلب
  • 0

eskandarinasab1

سوال

سلام

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

attachment.php?attachmentid=1904&stc=1

attachment.php?attachmentid=1905&stc=1

به جای اون قسمت از کد که با علامت قرمز مشخص شده از چه کدی استفاده کنم که مشکلم برطرف بشه

تشکر

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

12 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام.

شما به جای اون قسمت کدت که قرمز کردی اینو قرار بده:

bmp.InitializeMutable(imageview1.with, imageview1.Height)

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

سلام ببخشید تایپک قدیمی بالا اوردم ولی برام سوال شده

چطور میتونم از صحفه ی گوشی اسکرین شات بگیرم در b4a 

اسکرین شات داخلی نرم افزار نمیخام

اسکرین شات از همه جای گوشیم منظورمه

ایا باید گوشی روت باشه؟؟؟

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

سلام.

شما به جای اون قسمت کدت که قرمز کردی اینو قرار بده:

bmp.InitializeMutable(imageview1.with, imageview1.Height)

این کد رو هم تست کردم اما از خود ایمیج ویو عکس نمیگیره از قسمتی که تو عکس مشخص کردم عکس میگره

attachment.php?attachmentid=1930&stc=1

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

شما از تابع زیر استفاده کن

Sub Button1_Click
   'capture panel to imageview
     PanelCapture(Panel1,cardb2)
End Sub

'Capture Panel to imageview
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)

'draw from image to canavas
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
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببخشد من برای اسکرین شات از کدهای زیر استفاده میکنم کجاهاش رو باید تغییر بدم تا مشکلم حل بشه؟

Sub Button9_Click	PanelCapture(Panel1,ImageView3)
     Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Dim now, i As Long
Dim dt As String
DateTime.DateFormat = "yyMMddHHmmss"
now = DateTime.now
dt = DateTime.Date(now) 
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(Panel1.Width, Panel1.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 Out As OutputStream
Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)
bmp.WriteToStream(Out, 100, "PNG")
Out.Close
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 

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

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

داخل رویداد کلیک

PanelCapture(pnl As Panel, Img2 As ImageView)

یعنی بجای اون pnl اسم پنل خودتون رو بنویسید و به جای اون img2 اسم امیج ویو ای که قراره عکس بره توش!

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

الان کدم رو با شما تطبیق دادم کجاش مشکل داره؟

Sub Button4_Click    'capture panel to imageview
     PanelCapture(Panel1,ImageView3)
End Sub
'Capture Panel to imageview
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)


'draw from image to canavas
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




Sub Button9_Click
PanelCapture(Panel1,ImageView3)
     Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Dim now, i As Long
Dim dt As String
DateTime.DateFormat = "yyMMddHHmmss"
now = DateTime.now
dt = DateTime.Date(now) 
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
[color=#FF0000]bmp.Initialize(0, 0,Panel1.Width, Panel1.Height)[/color]
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 Out As OutputStream
Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)
bmp.WriteToStream(Out, 100, "PNG")
Out.Close
End Sub

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

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

کل کد من درسته فقط اون قسمت که قرمز کردم مشکل داره.........................

Sub Button4_Click[/b][b]    'capture panel to imageview[/b]
[b]      PanelCapture(Panel1,ImageView3)[/b]
[b]End Sub[/b]
[b]'Capture Panel to imageview[/b]
[b]Sub PanelCapture(pnl As Panel, Img2 As ImageView)[/b]

[b]Dim Obj1, Obj2 As Reflector[/b]
[b]Dim bmp As Bitmap[/b]
[b]Dim c As Canvas[/b]
[b]Obj1.Target = Obj1.GetActivityBA[/b]
[b]Obj1.Target = Obj1.GetField("vg")[/b]
[b]bmp.InitializeMutable(pnl.left + pnl.Width, pnl.Top + pnl.Height)   [/b]
[b]c.Initialize2(bmp)[/b]
[b]Dim args(1) As Object[/b]
[b]Dim types(1) As String[/b]
[b]Obj2.Target = c[/b]
[b]Obj2.Target = Obj2.GetField("canvas")[/b]
[b]args(0) = Obj2.Target[/b]
[b]types(0) = "android.graphics.Canvas"[/b]
[b]Obj1.RunMethod4("draw", args, types)[/b]

[b]'draw from image to canavas[/b]
[b]Dim canvas1 As Canvas[/b]
[b]canvas1.Initialize(Img2)[/b]
[b]Dim scrt As Rect[/b]
[b]scrt.Initialize(pnl.left, pnl.top, pnl.left + pnl.Width, pnl.Top + pnl.Height)[/b]
[b]Dim rectPanel1 As Rect[/b]
[b]rectPanel1.Initialize(0, 0,Img2.Width, Img2.Height)[/b]
[b]canvas1.DrawBitmap(bmp, scrt , rectPanel1)[/b]
[b]Img2.Invalidate[/b]

[b]Dim bmp As Bitmap[/b]
[b]Dim c As Canvas[/b]
[b]Dim now, i As Long[/b]
[b]Dim dt As String[/b]
[b]DateTime.DateFormat = "yyMMddHHmmss"[/b]
[b]now = DateTime.now[/b]
[b]dt = DateTime.Date(now) [/b]
[b]Obj1.Target = Obj1.GetActivityBA[/b]
[b]Obj1.Target = Obj1.GetField("vg")[/b]
[b][color=#ff0000]bmp.InitializeMutable(Panel1.Width, Panel1.Height)[/color][/b]
[b]c.Initialize2(bmp)[/b]
[b]Dim args(1) As Object[/b]
[b]Dim types(1) As String[/b]
[b]Obj2.Target = c[/b]
[b]Obj2.Target = Obj2.GetField("canvas")[/b]
[b]args(0) = Obj2.Target[/b]
[b]types(0) = "android.graphics.Canvas"[/b]
[b]Obj1.RunMethod4("draw", args, types)                                            [/b]
[b]Dim Out As OutputStream[/b]
[b]Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)[/b]
[b]bmp.WriteToStream(Out, 100, "PNG")[/b]
[b]Out.Close[/b]
[b]End Sub[/b]

[b]

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

اصلا به این کارها نیاز نیست ، از کتابخانه StudentLibrary یا aradsoftscreenshot استفاده کنید، کلا یک خط میشه

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

بایگانی شده

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

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

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