In this part, you will be able to:
- Create the Custom View
- Create Custom Attributes
- Use your View in an Activity
- Capture Touch Events to move the knob
Note: The code demonstrated here can be directly fetched from the git repository WidgyWidgets. You need to clone the repository and checkout to tags/knobview-part1 (Instruction are at the end of this post)
To start with this, you want to decide on whether to extend the base View class or to extend one of the widgets available in android.
In our case, I want to create a view that somehow shows in its center a circle that can be dragged by the user to any of the edges. One way to go would be to extend one of the available ViewGroups, add the knob in its center, and implement this dragging functionality. Another way would be to start the view from scratch by extending View.
To make things more interesting, I will, in this post, extend View. By the way, I will call it KnobView.
As a general practice I usually create a class that extends View and directly create a function called init and override the 3 constructors of View calling init() in all of them:
public class KnobView extends View { public KnobView(Context context) { super(context); init(context, null); } public KnobView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); } public KnobView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context, attrs); } private void init(Context context, AttributeSet attrs) { // TODO Auto-generated method stub } }If you do not know, the AttributeSet parameter in the constructor contains the attributes specified in the xml. To demonstrate, I will create an attribute called knob that will reference a drawable used for the knob in the center. To do so, we need to declare this attribute in the res folder. I will create a file called attr_knobview.xml in the res/values folder: this file will include the attributes of our KnobView. At this stage, we will only declare the attribute called knob of type integer since it is a reference to a drawable:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="KnobView"> <attr name="knob" format="integer" /> </declare-styleable> </resources>
private void init(Context context, AttributeSet attrs) { // TODO Auto-generated method stub TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.KnobView); int drawable = a.getResourceId(R.styleable.KnobView_knob, 0); if(drawable != 0) { mKnobDrawable = a.getDrawable(R.styleable.KnobView_knob); } }
In this code, I try to get the integer which would be specified by the attribute knob (KnobView_knob). If this integer is not 0, I get the drawable and assign it to the field mKnobDrawable. You can add the field mKnobDrawable at the top of the class using this line: private Drawable mKnobDrawable;
What if there is no knob attribute specified in xml? I will simply create my own round black circle. This can be done in the else statement by creating a ShapeDrawable and assigning it to mKnobDrawable. Now my init function will assign a drawable to mKnobDrawable whether knob was specified or not.
private void init(Context context, AttributeSet attrs) { // TODO Auto-generated method stub TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.KnobView); int drawable = a.getResourceId(R.styleable.KnobView_knob, 0); if(drawable != 0) { mKnobDrawable = a.getDrawable(R.styleable.KnobView_knob); } else { mKnobDrawable = new ShapeDrawable(new OvalShape()); ShapeDrawable s = (ShapeDrawable) mKnobDrawable; s.getPaint().setColor(Color.BLACK); } }
Now we want to take care of the size of this knob. For now, I will center it in the view and let it take half the width and half the height. I will update the Bounds of this mKnobDrawable each time the size of our KnobView changes. This can be captured in onSizeChanged:
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mKnobDrawable.setBounds(w/2-w/4, h/2-h/4, w/2+w/4, h/2+h/4); }
Notice that I am always updating the bounds of the knob drawable when the size changed. These bounds determine the actual rectangle in which my drawable will be drawn. I set the bounds to be the rectangle that is exactly half the size of the view and exactly located in the center of our view. It is pretty straight-forward.
Finally, I want to draw this Knob. This is simply calling the Drawable's draw function on our canvas in the onDraw function of the KnobView:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); mKnobDrawable.draw(canvas); }
For testing, I created an activity with the following xml layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/mobi.sherif.widgywidgetstest" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <mobi.sherif.widgywidgets.KnobView android:id="@+id/knob1" android:background="#f00" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" /> <mobi.sherif.widgywidgets.KnobView android:id="@+id/knob2" android:background="#0f0" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" app:knob="@drawable/ic_launcher" /> </LinearLayout>
Notice:
- If you are doing your own project, you probably want to specify your package name instead of mobi.sherif.widgywidgetstest (second line)
- Due to layout_height="0dp" and layout_weight="1", each KnobView will take half the screen.
- The first KnobView does not specify the knob attribute while the second does.
- Each of the KnobView has a differnt background (red and blue).
Anyway, if you run this activity, you will get the output that is shown in the previous image.
With some modifications, int the drawables used for the background and the knob, I was able to get the following KnobView:
I modified the first KnobView in the layout (notice the background and the knob values)
I modified the first KnobView in the layout (notice the background and the knob values)
<mobi.sherif.widgywidgets.KnobView android:id="@+id/knob1" android:background="@drawable/bg_knobview" app:knob="@drawable/bg_knob" android:layout_width="100dip" android:layout_height="100dip" android:layout_marginTop="100dip" android:layout_marginBottom="100dip" />
I also created res/bg_knobview
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="#aaaaaa" /> </shape>andres/bg_knob
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="#333333" /> </shape>
Now it is time to move our knob. It is a very simple thing to: We will capture the touches on our view using the function onTouchEvent and when an ACTION_DOWN or ACTION_MOVE is detected, we move the knob to the location of the event. How do we do so? It's pretty easy: we use the setBounds function that we used in the onSizeChanged.
@Override public boolean onTouchEvent(MotionEvent event) { final int action = MotionEventCompat.getActionMasked(event); if(action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_MOVE) { int w = getWidth(); int h = getHeight(); int x = (int) event.getX(); int y = (int) event.getY(); mKnobDrawable.setBounds(x-w/4, y-h/4, x+w/4, y+h/4); invalidate(); } return true; }Notice that we only did two things if the action is ACTION_DOWN or ACTION_MOVE:
- Set the bounds of our knob drawable based on the location of the event: We kept its width = w/2 and its height h/2 but we translated it to (x,y), the location of the event
- Invalidated the view using invalidate() to force our view to redraw -i.e. to move the knob.
The last natural thing to do is move the knob back when the user stops his touches. That is almost the same thing but with x and y set to the midpoint of the view -i.e. (w/2, h/2). Therefore our final onTouchEvent will look something like:
@Override public boolean onTouchEvent(MotionEvent event) { final int action = MotionEventCompat.getActionMasked(event); if(action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_MOVE) { int w = getWidth(); int h = getHeight(); int x = (int) event.getX(); int y = (int) event.getY(); mKnobDrawable.setBounds(x-w/4, y-h/4, x+w/4, y+h/4); invalidate(); } else if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) { int w = getWidth(); int h = getHeight(); int x = w/2; int y = h/2; mKnobDrawable.setBounds(x-w/4, y-h/4, x+w/4, y+h/4); invalidate(); } return true; }
Notice that the only difference is that x and y are not set to w/2 and h/2 respectively.
At the end of this part, your knob should be able to move when touched and return to its original place when released. Clone the WidgyWidget repository to try it yourself.
Have fun (:
Note: If you want to get the code of this part only, clone and checkout tags/knobview-part1 using the following commands (If you ommit folder_name, it will automatically be cloned into folder WidgyWidgets) :
git clone https://github.com/sherifelkhatib/WidgyWidgets.git folder_name
cd folder_name
git checkout tags/knobview-part1
... Try it and when you are done ...
git checkout master
At the end of this part, your knob should be able to move when touched and return to its original place when released. Clone the WidgyWidget repository to try it yourself.
Have fun (:
Note: If you want to get the code of this part only, clone and checkout tags/knobview-part1 using the following commands (If you ommit folder_name, it will automatically be cloned into folder WidgyWidgets) :
git clone https://github.com/sherifelkhatib/WidgyWidgets.git folder_name
cd folder_name
git checkout tags/knobview-part1
... Try it and when you are done ...
git checkout master
Thanks for sharing, nice post!
ReplyDelete- Với sự phát triển ngày càng tiến bộ của kỹ thuật công nghệ, nhiều sản phẩm thông minh ra đời với mục đích giúp cuộc sống chúng ta trở nên thoải mái và tiện lợi hơn. Và thiet bi dua vong tu dong ra đời là một trong những sản phẩm tinh túy của công nghệ, may ru vong tu dong là phương pháp ru con thời hiện đại của các ông bố bà mẹ bận rộn.
- Là sản phẩm tuyệt vời của sự phát triển công nghệ, dung cu dua vong tu dong được thiết kế an toàn, tiện dụng. Những lợi ích mà may dua vong em be mang lại là vô cùng thiết thực.
- Hiện nay trên thị trường có nhiều loại may dua vong cho em bé, sau nhiều năm kinh doanh và kinh nghiệm đút kết từ phản hồi của quý khách hàng sau khi mua máy, máy đưa võng tự động An Thái Sơn nhận thấy máy đưa võng tự động TS – sản phẩm may dua vong tu dong thiết kế dành riêng cho em bé, có chất lượng rất tốt, hoạt động êm, ổn định sức đưa đều, không giật cục, tuyệt đối an toàn cho trẻ, là lựa chọn hoàn hảo đảm bảo giấc ngủ ngon cho bé yêu của bạn.
Bạn xem thêm bí quyết và chia sẽ kinh nghiệm làm đẹp:
Những thực phẩm giúp đẹp da tại http://nhungthucphamgiupda.blogspot.com/
Thực phẩm giúp bạn trẻ đẹp tại http://thucphamgiuptre.blogspot.com/
Thực phẩm làm tăng tại http://thucphamlamtang.blogspot.com/
Những thực phẩm giúp làm giảm tại http://thucphamlamgiam.blogspot.com/
Những thực phẩm tốt cho tại http://thucphamtotcho.blogspot.com/
Chúc các bạn vui vẻ!
The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. IEEE final year projects on machine learning In case you will succeed, you have to begin building machine learning projects in the near future.
DeleteProjects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.
Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.
In this world of ever growing technology, we can easily watch the latest movies or tv shows by streaming on different websites.
ReplyDeleteNow we can even watch the movies and TV shows on our Android or Windows smartphones. One such app for watching movies is the PlayBox App.
It's one of the best when it comes to watching movies or TV shows. To know more about the app and also get the apk link just visit my site
PlayBox for iOS
Use this article to increase your knowledge . cara menggugurkan kandungan
ReplyDeleteI love to see you have written this content very Well and want to write more so people will aware of this issue
ReplyDeleteI have some favorite game Blogs as well like
||Happy Wheels at happywheels.in||
||Happy wheels game at classic happy wheels game||
||Happy Wheels demo at happy wheels||
||Fireboy and watergirl at fireboywatergirl.co||
Thank you for posting such a great article! I found your website perfect for my needs
ReplyDeletevisit our website
Obat Aborsi ,
ReplyDeleteCara Menggugurkan Kandungan ,
Obat Penggugur Kandungan ,
Great Article...Thanks for sharing the best information.It was so good to read and useful to improve my knowledge as updated one.
ReplyDeleteAndroid Training
I really enjoyed your blog Thanks for sharing such an informative post.
ReplyDeleteclipping path
clipping path service
background removal
raster to vector
Engineering mathematics 1
ReplyDeleteVTU 2nd SEM syllabus
Basic Electronics Engineering Tuition Classes in Vijayanagar, Bangalore
Basic electrical engineering Tuition classes for B.tech students
Best Java Training in Bangalore
Java Training institute in Bangalore
Best Java Training institute in Bangalore
Java Training institutes in Bangalore
Best Java Training institutes in Bangalore
Nice blog, it's so knowledgeable, informative, and good looking site. I appreciate your hard work. Good job. Thank you for this wonderful sharing with us. Keep Sharing.
ReplyDeleteKindly visit us @ 100% Job Placement | Best Colleges for Computer Engineering
Biomedical Engineering Colleges in Coimbatore | Best Biotechnology Colleges in Tamilnadu
Biotechnology Colleges in Coimbatore | Biotechnology Courses in Coimbatore
Best MCA Colleges in Tamilnadu | Best MBA Colleges in Coimbatore
Engineering Courses in Tamilnadu | Engg Colleges in Coimbatore
Thanks for updating this quality stuff. Treasurebox always provide you quality stuff for your home and garden.
ReplyDeleteWe will also provide you outdoor furniture with home delievery.
The article is very interesting and very understood to be read, may be useful for the people. I wanted to thank you for this great read!! I definitely enjoyed every little bit of it. I have to bookmarked to check out new stuff on your post. Thanks for sharing the information keep updating, looking forward for more posts..
ReplyDeleteKindly visit us @
Madurai Travels | Travels in Madurai
Best Travels in Madurai
Cabs in Madurai | Madurai Cabs
Tours and Travels in Madurai
A very inspiring blog your article is so convincing that I never stop myself to say something about it. You’re doing a great job,Keep it up.
ReplyDelete100% Job Placement Tamilnadu | Best Colleges for Computer Engineering
Biomedical Engineering Colleges in Coimbatore | Best Biotechnology Colleges in Tamilnadu
"Biotechnology colleges in coimbatore, Biotechnology colleges in tamilnadu "
Biotechnology Courses in Coimbatore | Best MCA Colleges in Tamilnadu
Best MBA Colleges in Coimbatore | Engineering Courses in Tamilnadu
Engg Colleges in Coimbatore
Attend The Data Science Courses in Bangalore From ExcelR. Practical Data Science Courses in Bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Data Science Courses in Bangalore.
ReplyDeleteExcelR Data Science Courses in Bangalore
ReplyDeleteI´ve been thinking of starting a blog on this subject myself .....
Thanks for sharing information. I really appreciate it.
ReplyDeleteGreat Article
ReplyDeleteFinal Year Project Domains for CSE
Final Year Project Centers in Chennai
JavaScript Training in Chennai
JavaScript Training in Chennai
Very nice post. iPhone Service Center in Chennai | Lenovo Mobile Service Center in Chennai
ReplyDeletenow present in your city
ReplyDeleteAttend The Data Analytics Course From ExcelR. Practical Data Analytics Course Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Data Analytics Course.
ReplyDeleteExcelR Data Analytics Course
Thanks for sharing...
ReplyDeleteVery good Keep it up.
I feel very grateful that I read this. It is very helpful and very informative and I really learned a lot from it.
ReplyDeletedata analytics courses
You are doing a great job. Now we are sharing with you all the Tresurebox store products which you will be buy online in a single click. Garden shed nz online in a single click,
ReplyDeleteLooking for English to Spanish Translators? We provide professional Translation Services at highly competitive rates without compromising the quality.
ReplyDeletespanish to english translation services
Great Article
ReplyDeleteData Mining Projects
Python Training in Chennai
Project Centers in Chennai
Python Training in Chennai
we are best calgary roofing companies & Best roofing contractors calgary. Contact us for transparent quotes. roofing calgary & roofing services calgary Roofing Company in Calgary
ReplyDeleteThis piece appeared educaitonal and informative. Thanks a lot for contributing the tutorial, I will be learning from it!
ReplyDeleteMoon Rocks,
ReplyDeleteCBD Isolate,
LOL Edibles,
Gummy Bears,
THC Distillate,
Rick Simpson Oil,
FECO,
Mendocino Purps
Thanks for sharing such a great blog
ReplyDeleteThanks for posting such a great blog
ReplyDeleteVermicompost Manufacturers | Vermicompost in chennai
Thanks for sharing such a nice information with us...
ReplyDeleteData Science Training in Bangalore
Nice blog, it’s so knowledgeable, informative, and good looking site. I appreciate your hard work. Good job. Thank you for this wonderful sharing with us. Keep Sharing.
ReplyDeleteTours and Travels in Madurai | Best tour operators in Madurai
Best travel agency in Madurai | Best Travels in Madurai
medical care is what many people lack in the interior areas of the world. people face a lot of health issues everyday without solution. buy psychedelics online, Buy weed online, Buy cocaine online
ReplyDeletelovely site get you purest research chemicals online and pills at cheap and in a 48 hours delivery time maximum
ReplyDeletebuy pills online
buy fentanyl powder online
buy scopolamine powder online
Thanks for this blog are more informative contents step by step. I here attached my site would you see this blog.
ReplyDelete7 tips to start a career in digital marketing
“Digital marketing is the marketing of product or service using digital technologies, mainly on the Internet, but also including mobile phones, display advertising, and any other digital medium”. This is the definition that you would get when you search for the term “Digital marketing” in google. Let’s give out a simpler explanation by saying, “the form of marketing, using the internet and technologies like phones, computer etc”.
we have offered to the advanced syllabus course digital marketing for available join now.
more details click the link now.
https://www.webdschool.com/digital-marketing-course-in-chennai.html
This is a wonderful article, Given so much info in it, Thanks for sharing. CodeGnan offers courses in new technologies and makes sure students understand the flow of work from each and every perspective in a Real-Time environmen python training in vijayawada. , data scince training in vijayawada . , java training in vijayawada. ,
ReplyDelete
ReplyDeleteHi, Very nice article. I hope you will publish again such type of post. Thank you!
Corporate gifts ideas | Corporate gifts
Corporate gifts singapore | Corporate gifts in singapore
Promotional gifts singapore | Corporate gifts wholesale Singapore
Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome.You can also check my articles as well.
ReplyDeleteData Science In Banglore With Placements
Data Science Course In Bangalore
Data Science Training In Bangalore
Best Data Science Courses In Bangalore
Data Science Institute In Bangalore
Thank you..
Every day I always visit sites to obtain the best information for materials research I was doing.......
ReplyDeleteWeb Designing Training Course in Chennai | Certification | Online Training Course | Web Designing Training Course in Bangalore | Certification | Online Training Course | Web Designing Training Course in Hyderabad | Certification | Online Training Course | Web Designing Training Course in Coimbatore | Certification | Online Training Course | Web Designing Training Course in Online | Certification | Online Training Course
ReplyDeleteHi, Very nice article. I hope you will publish again such type of post. Thank you!
Corporate gifts ideas | Corporate gifts
Corporate gifts singapore | Corporate gifts in singapore
Promotional gifts singapore | corporate gifts supplier
Chiefs Game Live
ReplyDeleteChiefs Game Today
Chiefs Football Live
Kansas City Chiefs Game Live
Texans Game Today
Texans Game Live
Thursday Night Football Live
Monday Night Football Live
Steelers Football Live
I felt very happy while reading this article. we provide Mobile Back Cover Printing in Kenya at affordable prices. for more info visit our website.
ReplyDeleteHi, Very nice article. I hope you will publish again such type of post. Thank you!
ReplyDeleteCorporate gifts ideas | Corporate gifts
Corporate gifts singapore | Corporate gifts in singapore
Promotional gifts singapore | corporate gifts supplier
ReplyDeleteBaltimore Ravens Football Live Online
Ravens Game Live Online
Watch Texans Game Live
Cardinals Game Live Online
Rams Game Live
Giants Game Live Online
Raiders Game Live Online
Buccaneers NFL Game Live
Please keep sharing this types of content, really amazing. Please follow my website for more information in Best Event Management Company in Kolkata.
ReplyDeleteInternet Business Ideas for 2020
ReplyDeletebuy weed online
ReplyDeletebuy moonrock online
buy pain relief pills online
Buy Adderall Online
buy weed online
buy moon rocks online
buy weed online in san francisco
buy weed online in los angeles
Benefits Of Micro Switch and More About the China Micro Switch Company
ReplyDeleteTo be honest your article is informative and very helpful. Hp Laptop | Hp laptop online price
ReplyDeletehttps://syntheticworldwide.com/
ReplyDeletesales@syntheticworldwide.com
Buy cheap liquid herbal incense at your best online shop
Interesting stuff to read. Keep it up.Adidas showroom in madurai
ReplyDeleteWoodland showroom in madurai | Skechers showroom in Madurai
Puma showroom in madurai
https://www.cocainehydrochloride.comWhat an amazing blog you have here Cocaine for Sale thank you for sharing this real good content buy colombian cocaine online will like to also say we have an amazing blog too if you will love to take a look buy peruvian cocaine online thanks for your time to check on our blog. Today cocainehydrochloride is one of the world-leading buy cocaine online manufacturers in the USA . for you to order cocaine online , there is a variety of cocaine websites you can purchase and have it delivered Worldwide . And Yes, you can buy crack cocaine online illegal drugs on the Internet, and it's a lot safer .
ReplyDeletehttp://curemedpharmaceutical.com
https://www.cocainepowdersale.com
https://www.cocainehydrochloride.com
where to buy liquid herbal incense
ReplyDeletebuy herbal incense with debit card
buy herbal incense overnight shipping
strongest liquid incense
buy herbal incense online cash on delivery
liquid herbal incense 2020
k2 spray that get you high for sale
buy herbal net
ReplyDeletehttps://buydocumentation.com/
Buy Driver’s License online, US driver license, drivers license renewal ca WhatsApp +1 (925) 526-5453
Here at Buy Documentation, you can buy fake documents at a fraction of a cost. We keep our prices low to meet the needs of all our customers. We provide Best Quality Novelty Real and Fake IDs and Passport, Marriage Certificates and Drivers license online
https://buydocumentation.com/canada-visa/
https://buydocumentation.com/buy-real-drivers-license/
https://buydocumentation.com/buy-real-id-cards/
https://buydocumentation.com/social-security-number-ssn/
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post.
ReplyDeleteThanks for posting the best information and the blog is very helpful.data science institutes in hyderabad
ReplyDeleteInformative blog
ReplyDeleteai training in hyderabad
Truly mind blowing blog went amazed with the subject they have developed the content. These kind of posts really helpful to gain the knowledge of unknown things which surely triggers to motivate and learn the new innovative contents. Hope you deliver the similar successive contents forthcoming as well.
ReplyDeleteData Science in Bangalore
wonderful article....
ReplyDeleteMachine Learning Training in Coimbatore | Top 10 java training institute in coimbatore | web design training in coimbatore | selenium training in coimbatore | python tutorial in coimbatore | web development training in coimbatore | Web Designing training in coimbatore | Data Science course in coimbatore
no deposit bonus forex 2021 - takipçi satın al - takipçi satın al - takipçi satın al - tiktok takipçi satın al - instagram beğeni satın al - instagram beğeni satın al - google haritalara yer ekleme - btcturk güvenilir mi - izlenme-satin-al.com - numarasmsonay.com - borsagazete.com - takipcisatinals.com - izlenme-satin-al.com/youtube - google haritalara yer ekleme - altyapısız internet - mikrofiber havlu - forexbonus2020.com - tiktok jeton hilesi - tiktok beğeni satın al - microsoft word ücretsiz indir - misli apk indir - binance güvenilir mi - takipçi satın al - mikrofiber havlu - uc satın al - takipçi satın al - takipçi satın al - finanspedia.com
ReplyDeleteDr Zodiak cartridges
ReplyDeleteWhere can I buy moonrock cart in Europe
buy moonrock carts online
Moonrock cart Price in spain
Zodiak Moonrock Cartridge
Moonrock Clear carts
moonrock Clear cart ca
Buy packwoods x cookies online in Europe
Buy Packwoods Sherbinskis Collab
Buy Packwoods x gashouse in Europe
Buy Packarillos Online USA
Buy packwoods Boss Box
Buy Packwoods x Big Al’s Exotics online in Germany
Buy Packwoods RYO Kit online
Buy packwoods x cookies cereal milk blunt online
buy leftcoastextracts online uk
ReplyDeletebuy left coast extracts catridges online in usa
buy left coast extracts europe
leftcoastextracts cartridges for sale sydney
buy leftcoastextracts pods
leftcoastextracts syringes for sale
Order leftcoastextracts cartridges Online in Europe
where can i buy leftcoast extracts online usa
where can i buy left coast extracts catridges online
is left coast extracts sold in uk
can i buy leftcoastextracts cartridges from sydney
is leftcoastextracts pods good
leftcoastextracts syringes for sale uk
can i Order leftcoastextracts cartridges Online from Europe
rappers 1st choice official website
ReplyDeletewhere can i get rappers weed in la
buy rappers weed online in Europe
rappers weed for sale in Europe
rappers favorite weed
rappers 1st choice official website in Europe
rappers favorite weed in Europe
Buy rappers gelato-41 in Europe
Buy gelato-41 from rappers 1st choice in Europe
rappers 1st choice official website
rappers 1st choice official website
where to buy rappers 1st choice weed in Europe
where to buy rappers 1st choice weed online in Europe
rappers 1st choice in Europe
rappers 1st choice
Plug n play official website
ReplyDeletewhere to buy plug play batteries
Buy plug play pods online
plugnplay LA
flavors of plugplay for sale
buy plug n play online
plug n play
plug play all day
plugnplay
buy plugplay slushie online
buy plugsplay online
Tokyo Olympics Live Stream
ReplyDeleteWatch Olympic Game Live
Cleveland Browns live
ReplyDeleteCleveland Browns game live
Cleveland Browns game today
takipçi satın al
ReplyDeletetakipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
takipçi satın al
instagram takipçi satın al
instagram takipçi satın al
takipçi satın al
takipçi satın al
instagram takipçi satın al
instagram takipçi satın al
instagram takipçi satın al
instagram takipçi satın al
takipçi satın al
instagram takipçi satın al
Independent Escorts in Dubai is the right decision. the top Dubai Escorts at your one Click. Log on to us for entertainment
ReplyDeleteExtremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. A debt of gratitude is in order for sharing. data scientist course in delhi
ReplyDeleteVery informative post! There is a lot of information here that can help any business get started with a successful social networking campaign.
ReplyDeleteIBOGA DEALS
ReplyDeleteAre you suffering from drugs opiates/opioids, cigarette,Alcohol and other adictions and you are looking for a good means to detoxification? We supply high quality and purity ket and iboga in all it's from (iboga TA,Ibogaine HCL, Iboga roorbarks, iboga powder,iboga Capsules
Buy iboga-root-bark-chips-shavings Online
Buy ibogaine-hcl-1gram Online
Email: ibogadeals@gmail.com/sales@ibogadeals.com
what'sapp number: +1(631)3174860
website: https://www.ibogadeals.com/
I am a new user of this site, so here I saw several articles and posts published on this site, I am more interested in some of them, will provide more information on these topics in future articles.
ReplyDeletedata science course in london
ReplyDeleteNice & Informative Blog ! We offer welcome to Mila bulldogs. Check it out!...
puppies for sale near me
British bulldog puppies for sale
where to buy
Totally loved your article. Looking forward to see more more from you. Meanwhile feel free to surf through my website while i give your blog a read.
welcome to Newsome frenchies
where to buy french bulldog puppies
frenchies bulldog puppies
in Australia
Your content is nothing short of brilliant in many ways. I think this is engaging and eye-opening material. Thank you so much for caring about your content and your readers.
ReplyDeletedata science course in hyderabad
to the medical condition of most patients. many people suffering from cancer, chronic pain, anxiety and man more have overcome their illment with cannabis. you can order weed from our store
ReplyDeleteA very inspiring blog your article is so convincing.
ReplyDeleteArtificial intelligence and data science course in coimbatore
Best artificial intelligence and data science colleges in coimbatore
Useful information. Fortunate me I found your website accidentally, and I’m stunned
ReplyDeletewhy this twist of fate did not took place in advance.
I bookmarked it.
cheq out my website Satta King Fast
Nice blog and thanks for provide great information.
ReplyDeleteBest Vashikaran Specialist in Dehradun
Best Vashikaran Specialist in Amritsar | Call +91-9501828274
Vashikaran Specialist in Meerut | Get Your Love back
Black Magic Specialist in Jalandhar
Vashikaran Specialist in Noida - Noida #1 Vashikaran Specialist
Vashikaran Specialist in Jaipur | Astrologer Sanjay Kumar Ji
ReplyDeleteOur online store is one of the best in the supply of rare and high-grade (Mushrooms, Edibles. Psychedelics, and more)with absolute purity. All our products are tested to guarantee potency after production, during distribution and even storage. We ship globally in discreet and undetectable packaging using our network of trusted partners.
psilosybin mushroom 2022, trusted magic mushroom site 2022,
cheap liquid lsd, order cheap psychedelic mushroom,
cheap magic mushroom, super quality shrooms,
most potent psilocybin mushroom on the market,
best microdosing mushrooms 2022, Golden teacher mushroom for sale,
where to buy B+ magic mushroom, buy shrooms online ,
buy psilocybin mushroom overnight shipping, effective microdosing for ptsd,
buy mushroom truffles online cash on delivery, buy microdose capsules online 2021,
magic mushrooms for mental illness for sale,
buy mushies for anxiety/deppression and ptsd, cheap psilocybin mushroom, shrooms near me,
where to buy psilocybin mushroom near me, cheap psychedelic mushroom for sale,
buy caps/buttons cheap, best place to buy magic mushroom,
buy cheap fungi mushrooms, cheap strong fungus, best quality spores for sale,
buy mushroom grow kit online, buy fungi shrooms near me, cheapest magic mushrooms online,
where to buy penis envy online, where to buy mexicanna online, buy microdose capsules online,
best microdose capsule for sale,
fungi mushroom for sale, best liquid cultures online, buy spores near me, buy Nirvana mushroom near me,
buy pajaritos mushrooms near me, psychedelic mushroom near me, buy medicinal mushroom online,
buy 5-MeO-DMT, buy dmt vape pen online, buy lsd tabs online, buy dmt online, where to buy dmt,
lsd for sale, buy mushies near me, buy shrooms wholesale price, strong boomers for sale,
Buy trippy shrooms online, buy penis envy, buy albino A+, buy amazonian cubensis,
buy psilocybe cubensis, buy blue meanie, buy vietam cubensis, buy z strain shrooms,
buy boomers cubensis online, buy cubensis buy golden teacher, buy liquid lsd online
Our quality is the best you can find around and we sell in small/large quantities with guaranteed discreet delivery in good time Shipping
website...https://megapsilocybin.com/
call/text..+1(458) 201-6900
email..sale@megapsilocybin.com
I really enjoyed this post
ReplyDeletePackers and Movers in Chennai | Packers and Movers in Trichy
Packers and Movers in Theni | Packers and Movers in Karur
Packers and Movers in Madurai
Fast-track your data analytics and machine learning career with guaranteed placement opportunities. Most extensive, industry-approved experiential learning program ideal for future Data Scientists.
ReplyDeleteAfter reading your article I was amazed. I know that you explain it very well. And I hope that other readers will also experience how I feel after reading your article. data analytics course in surat
ReplyDeleteYou actually make it look so easy with your performance but I find this matter to be actually something which I think I would never comprehend. It seems too complicated and extremely broad for me. I'm looking forward for your next post, I’ll try to get the hang of it! data science training in kanpur
ReplyDeleteAmazingly by and large very interesting post. I was looking for such an information and thoroughly enjoyed examining this one.
ReplyDeleteKeep posting. An obligation of appreciation is all together for sharing.
data science training in kolhapur
Copying wii original DVDs and enjoying them on your console is not a tuff thing to do all you need to know is the good software to make your copying games process successful and let you play all your games. how to install cracked apps on mac Game downloads are free of harmful viruses, adware, and spyware (scanned by Virustotal).
ReplyDeleteAmazing write-up! Best Murukku Machine in Tamilnadu
ReplyDeleteLow Cost Murukku Machine in Tamilnadu
Automatic Murukku Machine in Tamilnadu
Kai Murukku Machine in Tamilnadu
Chakli Making Machine in Tamilnadu
you will need support or suggestions, write me privately.
ReplyDeleteI interested in your implementation/use case.
the best situs slot terbaik
Togel2win
daftar bo bonanza
Slot gampang menang
Very useful post. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up. data analytics course in mysore
ReplyDeletelegit online dispensary shipping worldwide
ReplyDeletelegit online dispensary shipping worldwide
most trusted online dispensaries ship all 50 states
Informative blog
ReplyDeletedata science training in agra
Amazingly by and large very interesting post. I was looking for such an information and thoroughly enjoyed examining this one. Keep posting.
ReplyDeleteAn obligation of appreciation is all together for sharing.data analytics course in gwalior
ReplyDeleteWe believe every puppy deserves a home and every dog lover deserves the best..
welcome to Maltese Puppies
where to buy Maltese Puppies
Maltese puppies
Maltese Puppies For Sale
You provided fantastic information which is going to help people. You can also get information about IT solutions company Mississauga, Managed IT Services Mississauga, cloud consulting services Mississauga
ReplyDeleteI would also motivate just about every person to save this web page for any favorite assistance to assist posted the appearance. data science training in surat
ReplyDeleteBuy Crystal Mеth Online
ReplyDeleteBuy Meth Online. Crystal mеth iѕ the common name fоr сrуѕtаl methamphetamine, a ѕtrоng аnd highly addictive drug that affects the central nеrvоuѕ ѕуѕtеm. meth for sale, buy meth, buy crystal meth online, buy methamphetamine online, crystal meth online, buy crystal meth, order meth online
Buy Dmt оr N, N-dimеthуltrурtаminе in mеdiсаl tаlk — iѕ a hаlluсinоgеniс trурtаminе drug. Sоmеtimеѕ rеfеrrеd tо аѕ Dimitri, thiѕ drug рrоduсеѕ еffесtѕ ѕimilаr tо thоѕе оf рѕусhеdеliсѕ, likе LSD аnd mаgiс muѕhrооmѕ.. 5 meo dmt buy, 4 aco dmt buy, dmt drug buying online, where to buy dmt, dmt for sale, where can you buy dmt
ReplyDeleteQuality Spice Incense
ReplyDeleteK2 spice spray omg
K2 spice spray pure fire
Black diamond kush
Cannabis crumble
Liquid incense spray
K2 E-Liquid red code
k2 clear paper spray
Risk management software is a type of computer program designed to help businesses and organizations identify, assess, and manage potential risks to their operations. These risks may include financial risks, operational risks, legal risks, and reputational risks, among others.
ReplyDeleteRipe 2 Pipe ganja shop is a Discrete,Fast,Friendly,Reliable and top Marijuana Dispensary that provide quality marijuana strains,edibles,high THC oil,THC pen oil catridges,Shatter,Wax to customers around the world.We offer top quality marijuana product, both medical and recreational our products are all of top shelf quality.
ReplyDeleteBELOW ARE SOME FEW OF STRAINS WE GOT!!!!!!!!
30grams White Widow: $230
30grams sour Diesel : $240
30grams black domina :$250
30grams Bubba : $235
30grams Hawaii-Skunk:$200
30grams Hindu Kush: $220
30grams afghani kush :$240
30grams Super Silver Haze:$225
30grams sweet island skunk :$240
30grams OG ghost train haze :$240
30grams OG Kush :$230
30grams Lemon haze:$235
30grams granddaddy :$240
30grams Super Skunk :$200
30grams AK 47 :$215
30grams Blueberry :$210
30grams Barry White Oil :$230
30grams white Russian:$230
30 grams blue dream ####### :$190
30grams Dabber’s Delight CBD Oil :$235
30 grams Dabber’s Delight Indica: $210
30 GRAMS Platinum Cookies Oil :$230
30 grams Hindu Kush Wax : $250
30 grams Royal Kush Wax Crumble : $255
30 grams snoop master kush : $230
50grams sour Diesel $380
50 grams black domina: $450
50grams White Widow: $350
50grams Hawaii-Skunk:$300
50grams afghani kush :$380
50grams granddaddy: $350
50grams Lemon haze :350usd
50grams Barry White Oil :$330
50grams Hindu Kush: $330
50grams Super Silver Haze:$350
50grams OG Kush :$370
50grams Super Skunk :$360
50grams sweet island skunk: $380
50grams AK 47 :$330
50grams OG ghost train haze $380
50grams Blueberry :$300
1 oz Night Nurse….. $310
1 oz Straw Berry Banana..$320
1 oz Mega Wellness OG..$300
1 oz Lam’s Breath……….. $300
1 oz Cherry Pie…….. $290
1 oz Tahoe OG……… $300
1 oz Fire OG……….. $300
1 oz Trainwreck ……. $325
1 oz SFV OG……….. $310
1 oz Jack Herer ……. $320
1 oz Durban Poison… $290
1 oz Bubba Kush…… $275
1 oz Bruce Bannar #3…$290
4 oz OG Kush……… $920
4 0z OG ghost train haze $960
4 oz White widow…….$920
4 oz Holy Grail OG…..$940
4 oz AK 47 …………$860
4 oz Super Skunk……. $800
4 oz Hindu Kush……… $880
4 oz Super Silver Haze….$900
4 oz Girl Scout Cookies…$880
4 oz Blueberry………… $810
4 oz Hawaii kunk………. $800
4 oz Sour Diesel……….. $960
4 oz Jack Here………… $880
4 ozafghani kush ………….$960
4 oz Lemon haze………….$940
4 oz black domina…………$1000
4 OZ granddaddy…………$960
4 OZ sweet island skunk….$960
1Lbs sour Diesel :$2000
1Lbs Ak47 : $1320
1Lbs Blueberry : $1950
1Lbs purple haze : $1800
1Lbs Super Silver haze : $2000
1Lbs Trainreck is : $1800
1Lbs white widow : $1850
1Lbs OG Kush : $1900
1Lbs White rhino : $1750
1Lbs Jack herer : $1800
1Lbs white Russian:$1750
1Lbs Lemon haze:$1700
1Lbs black domina $2200
1Lbs afghani kush $2000
1Lbs granddaddy $2000
1Lbs sweet island skunk:$2000
1Lbs OG ghost train haze: $2000
- We do discreet double vacuum sealed packaging,all sealed in air tight Aluminum foil bags ,(no smell) it can't be scent detected by canine or electronic sniffers, the disguise is 100% safe , fast and relaible delivery to your home address through DHL,UPS,TNT either overnight or by day with a valid tracking number provider so you can see your package and also know when it's going to arrive your location.
-Stealth Packages
-Vacuum sealed thick plastic
-Fast and Reliable delivery
-No signature required upon arrival of parcel
-We offer safe and discreet overnight shipping (24/h) to clients within the US, and 3-4 business days shipping to clients in EU.
-We also offer the best discount for bulk purchase on any of our products.
-We offer the best of services to all our clients, and make sure they are
treated like family.
-We offer a FULL REFUND on any package that doesn't make it to its
destination.
FOR ANY INQUIRES REACH US VIA;
PRODUCT LINK- ...........https://www.ripe2pipeganjashop.com/
WhatsApp:....................+90 546 623 18 62
Wickr ID:..........................Genlabs
Telegram:......................+1(707)742-3597
Text or call:.................+1(707)742-3597
EMAIL :Ripe2pipeganjashop@gmail.com