ذخیره کردن عکس به همراه لیبل های روی آن

سوال

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

من یک برنامه نوشتم ک  وقتی روی یکی از آیتم های List View کلیک میشه یک عکس درون یک  Image باز گذاری میشه و یک سری Label روی عکس قرار میگیره من میخوام این عکس جدید با تمام Label های موجود روش به صورت یک عکس یکپارچه ذخیره بشه

ممنون میشم اگر پاسخ گو باشید .

با تشکر

در حال بررسی 0
, 2018-08-26T11:30:39+03:30 5 پاسخ کاربر تازه 0

پاسخ ها ( 5 )

    1
    2018-08-26T19:58:29+03:30

    سلام

    راه حلی که ب نظر من میرسه اینه که شما بیایین از اون اکتیویتی کلن یه اسکرین شات بگیرین

    اول بیایین این ایمیج ویو و لیبل هاتونو تو یه پنل بذارین

    بعد کتابخونه ی reflection رو تیک بزنین

    بعد یه باتنی رو خارج از این پنل بذارین(تا تو اسکرین شات نیوفته)

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

    Sub Button1_Click
          PanelCapture(Panel1,ImageView1,label1,label2)
          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.left + Panel1.Width, Panel1.Top + 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, label1 As Label, label2 As Label)
    
    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
    2018-08-27T07:35:24+03:30

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

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

    aradscreenshot

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

    0
    2018-08-27T07:37:09+03:30

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

    0
    2018-08-27T12:20:44+03:30

    سلام

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

    یه بار هم با اون سعی کن اسکرین شات بگیری

     

    0
    2018-08-27T12:57:54+03:30

    سلام

    با این کتابخونه ای که میفرمایین کار نکردم تو نت هم گشتم نتونستم مطلبی در موردش پیدا کنم شرمنده

    ولی میتونین ب اون لینکی که در پاسخ اول گذاشتم مراجعه بکنین و کتابخونه ی دانشجو رو دانلود کنین همون سایت رو نگاه هم کنین میتونین آموزشش رو پیدا کنین

    خودم تا حالا استفاده نکردم وگرنه طریقه ی استفاده ش رو هم میگفتم

    موفق باشید

      1
      2018-08-27T15:13:36+03:30

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

ارسال یک پاسخ