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.
This blog is so nice to me. I will continue to come here again and again. Visit my link as well. Good luck
ReplyDeleteobat aborsi
cara menggugurkan kandungan
obat telat datang bulan
obat penggugur kandungan
obat aborsi
cara menggugurkan kandungan
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
ReplyDeletehammer of thor
ReplyDeletetitan gel
titan gel asli
titan gel surabaya
titan gel di surabaya
jual titan gel surabaya
jual titan gel di surabaya
titan gel cod di surabaya
titan gel cod surabaya
penjual titan gel di surabaya
penjual titan gel surabaya
titan gel asli surabaya
titan gel asli di surabaya
jual titan gel di Jalan Raya ITS Surabaya
jual titan gel di Jalan Panglima Sudirman Surabaya
jual titan gel di Jalan Pasar Turi Surabaya
jual titan gel di Jalan Pemuda 33-35 Surabaya
jual titan gel di Jalan Pucang Adi Surabaya
jual titan gel di Jalan Raya Darmo Surabaya
jual titan gel di Jalan Raya Gubeng Surabaya
jual titan gel di Jalan Raya Jemur Sari Surabaya
jual titan gel di Jalan Raya Kali Rungkut Surabaya
jual titan gel di Jalan Raya Lontar Surabaya
jual titan gel di Jalan Rungkut Asri Timur XII Surabaya
jual titan gel di Jalan Pengampon VI Surabaya
penirum
jual penirum surabaya
jual penirum semarang
jual penirum jakarta
I 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
I’m really impressed with your article, such great & usefull knowledge you mentioned here. Thank you for sharing such a good and useful information here in the blog
ReplyDeleteKindly visit us @
SATHYA TECHNOSOFT (I) PVT LTD
SMO Services India | Social Media Marketing Company India
Social Media Promotion Packages in India | Social Media Marketing Pricing in India
PPC Packages India | Google Adwords Pricing India
Best PPC Company in India | Google Adwords Services India | Google Adwords PPC Services India
SEO Company in India | SEO Company in Tuticorin | SEO Services in India
Bulk SMS Service India | Bulk SMS India
Interesting information and attractive.This blog is really rocking... Yes, the post is very interesting and I really like it.I never seen articles like this. I meant it's so knowledgeable, informative, and good looking site. I appreciate your hard work. Good job.
ReplyDeleteKindly visit us @
Sathya Online Shopping
Online AC Price | Air Conditioner Online | AC Offers Online | AC Online Shopping
Inverter AC | Best Inverter AC | Inverter Split AC
Buy Split AC Online | Best Split AC | Split AC Online
LED TV Sale | Buy LED TV Online | Smart LED TV | LED TV Price
Laptop Price | Laptops for Sale | Buy Laptop | Buy Laptop Online
Full HD TV Price | LED HD TV Price
Buy Ultra HD TV | Buy Ultra HD TV Online
Buy Mobile Online | Buy Smartphone Online in India
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
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
Best Travels in Madurai
Cabs in Madurai
Tours and Travels in Madurai
Excellent Blog. I really want to admire the quality of this post. I like the way of your presentation of ideas, views and valuable content. No doubt you are doing great work. I’ll be waiting for your next post. Thanks .Keep it up! Kindly visit us @
ReplyDeleteChristmas Gift Boxes | Wallet Box
Perfume Box Manufacturer | Candle Packaging Boxes | Luxury Leather Box | Luxury Clothes Box | Luxury Cosmetics Box
Shoe Box Manufacturer | Luxury Watch Box
Wow, what an awesome spot to spend hours and hours! It's beautiful and I'm also surprised that you had it all to yourselves!
ReplyDeleteKindly visit us @ Best HIV Treatment in India | Top HIV Hospital in India | HIV AIDS Treatment in Mumbai | HIV Specialist in Bangalore
HIV Positive Treatment in India | Medicine for AIDS in India
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
Excellent Blog. I really want to admire the quality of this post. I like the way of your presentation of ideas, views and valuable content. No doubt you are doing great work. I’ll be waiting for your next post. Thanks .Keep it up!
ReplyDeleteKindly visit us @
Luxury Packaging Box
Wallet Box
Perfume Box Manufacturer
Candle Packaging Boxes
Luxury Leather Box
Luxury Clothes Box
Luxury Cosmetics Box
Shoe Box Manufacturer
Luxury Watch Box
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
Attend Business Analytics Training in Mumbai with 100% Syllabus Covered also Attend the Best Data Science Course in Mumbai. Faculty are From IIT & ISB. ExcelR is the Best Institute for Data Science Training in Mumbai
ReplyDeleteData Analytics Courses in Mumbai
This isvery nice post ...so good to read...
ReplyDeleteVery nice post. iPhone Service Center in Chennai | Lenovo Mobile Service Center in Chennai
ReplyDeletenow present in your city
ReplyDeleteAttend The PMP Certification From ExcelR. Practical PMP Certification Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The PMP Certification.
ReplyDeleteExcelR PMP Certification
Attend 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.
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.
ReplyDelete
ReplyDeleteA very inspiring blog your article is so convincing that I never stop myself to say something about it.
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
Thanks a lot for sharing
ReplyDeleteHaving good health is what most people out there wants but can not achieve. some people takes buy ibogaine online AND buy weed online to get it.
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
ReplyDeleteA very interesting blog....
ReplyDeleteThis piece appeared educaitonal and informative. Thanks a lot for contributing the tutorial, I will be learning from it!
ReplyDeleteKeep sharing the post like this.
ReplyDeleteIt’s so knowledgeable Nice blog...
ReplyDeleteNice 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.
ReplyDeleteKeep sharing the post like this.
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
Amazing article useful information.
ReplyDeleteWeb designing trends in 2020
When we look into the trends, everything which is ruling today’s world was once a start up and slowly begun getting into. But Now they have literally transformed our lives on a tremendous note. To name a few, Facebook, WhatsApp, Twitter can be a promising proof for such a transformation and have a true impact on the digital world.
we have offered to the advanced syllabus course web design and developing for available join now.
https://www.webdschool.com/web-development-course-in-chennai.html
Hi, 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 wholesale Singapore
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. ,
ReplyDeleteMr Sanjay Baghela focus to reflects as the best leader of SEO in the world, and his dedication and expertise in SEO field make him enable as the owner of the best BEST SEO Expert India. You can connect with him anytime and you can see his knowledge about SEO itself. Drop your request and dial his number now!
ReplyDeletebest seo expert in india
With Sanjay Baghela, your business Website is in safe hands. He and his team are the best SEO Expert in India the leading digital marketing field.
ReplyDeleteBest SEO Expert In India
Best Seo Company in India
ReplyDeleteThanks for sharing such a great blog
Vermicompost manufacturers in Tamilnadu | Vermicompost in Tamilnadu
Vermicompost Manufacturers | Vermicompost Suppliers
Vermicompost in Coimbatore | Vermicompost manufacturers in Chennai
Vermicompost in chennai | Best Vermicompost in chennai
.
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
Thanks for sharing such a great blog
ReplyDeleteVermicompost manufacturers in Tamilnadu | Vermicompost in Tamilnadu
Vermicompost Manufacturers | Vermicompost Suppliers
Vermicompost in Coimbatore | Vermicompost manufacturers in Chennai
Vermicompost in chennai | Best Vermicompost in chennai
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..
Thanks for sharing such a great blog
ReplyDeleteVermicompost manufacturers in Tamilnadu | Vermicompost in Tamilnadu
Vermicompost Manufacturers | Vermicompost Suppliers
Vermicompost in Coimbatore | Vermicompost manufacturers in Chennai
Vermicompost in chennai | Best Vermicompost in chennai
Hi, 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 wholesale Singapore
Business card holder singapore | T shirts supplier singapore
Thumb drive supplier singapore | Leather corporate gifts singapore
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
Afghan Kush
ReplyDeleteAK-47
buy weed online
AK-47 dank vape
painkiller
cocaine
Amnesia Haze
buy weed online
Afghan Kush
legit online dispensary shipping worldwide
buy weed online
painkiller
buy weed online
cocaine
Amnesia Haze
A good blog always comes-up with new and exciting information and while reading I have feel that this blog is really have all those quality that qualify a blog to be a one
ReplyDeletedata science training in guwahati
Watch Packers Live
ReplyDeleteWatch Patriots Live
Watch Browns Live
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
Thank you for helping people get the information they need. Great stuff as usual. Keep up the great work!!!
ReplyDeleteabout us
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
There is no dearth of Data Science course syllabus or resources. Learn the advanced data science course concepts and get your skills upgraded from the pioneers in Data Science.
ReplyDeletedata science course bangalore
data science course syllabus
data science training in marathahalli
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
ReplyDeleteThanks for sharing this information. I really appreciate it.
Iphone service center in tnagar | Iphone service center in chennai
Lenovo mobile service center in Tnagar | Lenovo Mobile service center in chennai
Moto service center in t nagar | Motorola service center in t nagar
Moto Service Center in Chennai | Motorola Service Center in chennai
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
ReplyDeletebuy weed online
buy weed online
stop addiction
buy mango kush online
Amnesia Haze
Benefits Of Micro Switch and More About the China Micro Switch Company
ReplyDeletebuy weed online
ReplyDeleteBuy Adderall Online
buy research chemicals online
buy heroin online
Buy Cocaine online
buy crack cocaine online
To be honest your article is informative and very helpful. Hp Laptop | Hp laptop online price
ReplyDelete