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

درج متن روی عکس


manoochehr_sh

سوال

سلام دوستان

میخوام روی تصویر یه فایل با drawtext متنی رو بنویسم ولی خطا میده

یه فایل png رو از dirassest میخونم و با canvas، کار drawtext رو انجام میده و در نهایت توی ایمیج ویو نشون میدم

کدم اینه :

    Dim imageview1 As ImageView
	imageview1.Initialize("imageview1")
	Activity.AddView(imageview1,0,0,100%x,100%y)
	
	Dim btemp As Bitmap=LoadBitmap(File.DirAssets,"index.png")
	
	Dim can As Canvas
	can.Initialize2(btemp)
	can.DrawText("matne test",10,20, Typeface.DEFAULT_BOLD,20,Colors.Blue,"LEFT")
	imageview1.SetBackgroundImage(btemp)

و خطایی که میده هم اینه:

** Service (starter) Create **
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
main_activity_create (java line: 343)
java.lang.RuntimeException: Bitmap is not mutable.
	at anywheresoftware.b4a.objects.drawable.CanvasWrapper.Initialize2(CanvasWrapper.java:104)
	at b4a.examplegif.main._activity_create(main.java:343)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:525)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
	at b4a.examplegif.main.afterFirstLayout(main.java:102)
	at b4a.examplegif.main.access$000(main.java:17)
	at b4a.examplegif.main$WaitForLayout.run(main.java:80)
	at android.os.Handler.handleCallback(Handler.java:800)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:194)
	at android.app.ActivityThread.main(ActivityThread.java:5455)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:525)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
	at dalvik.system.NativeStart.main(Native Method)

 

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

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

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

چرا لقمه رو دور سرت میچرخونی 

یه لیبل بزار رو عکست

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

به جای خط کد 

can.Initialize2(btemp)

از خط کد

can.Initialize(imageview1)

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

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

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

نمایش در imageview رو فقط بعنوان مثال گفتم

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

مشکلم رو حل کردم

کد صحیحش رو میذارم، شاید بدرد کسی بخوره

    Dim imageview1 As ImageView
	imageview1.Initialize("imageview1")
	Activity.AddView(imageview1,0,0,100%x,100%y)
	
	Dim btemp As Bitmap=LoadBitmap(File.DirAssets,"index.png")
	Dim bm As Bitmap
	bm.InitializeMutable(btemp.Width,btemp.Height)
	Dim rect As Rect
	rect.Initialize(0,0,btemp.Width,btemp.Height)
	Dim can As Canvas
	can.Initialize2(bm)
	can.DrawBitmap(btemp,Null,rect)
	can.DrawText("متن تست",10,20, Typeface.DEFAULT_BOLD,20,Colors.Blue,"LEFT")
	imageview1.SetBackgroundImage(bm)

 

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

بایگانی شده

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

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

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