Monday, September 10, 2012

Building a custom camera app in Android

- Rameshkumar Subramanian
Its always my craze to work on the image processing application. Infact I was thinking of developing a camera application for android mobiles which i have already done for desktop. So, let me share what?, how? did i come up with the application through this post.

Steps to follow
  • Determine camera hardware exist of not.
  • Accessing the camera.
  • Verifying camera features.
  • Creating preview class
  • Capturing the picture and save it.
  • Releasing the camera.
To access the device camera we must declare camera permission and feature in the manifest file. For instance if we need to used auto-focus feature we have to declare auto-focus feature in manifest file before to use it.

<uses-permission android:name="android.permission.CAMERA"/>
Note: If you are using camera via internet, you don't need this.
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
Before launching our camera application in the device, check whether device is having camera hardware or not. If not, we do not want to install our application. In that case we can declare our manifest file as the following below.
<uses-permission android:name="android.permission.CAMERA" />

We can also detect camera hardware in the runtime

/** Check if this device has a camera */
private boolean checkCameraHardware(Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
// this device has a camera
return true;
} else {
// no camera on this device
return false;
}
}
Camera.Open() method to helps to access the camera.

Verifying camera features
Once we got access to a camera, we can get further information about its capabilities using the Camera.getParameters() method and checking the returned Camera.Parameters object for supported capabilities.

Creating preview class

The first thing before we snap a pic is the view of it on the screen, its the SurfacePreview class that to help view the object from camera. The following codes implement the SufraceView class and SurfaceHolder.Callback function in order to handle the destroying and the creation of views.

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder surfaceHolder;
private Camera camera;

public CameraPreview(Context context, Camera camera) {
super(context);
this.camera = camera;

// SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

public void surfaceCreated(SurfaceHolder holder) {
try {
camera.setPreviewDisplay(holder);
camera.startPreview();
} catch (IOException e) {
Log.d(TAG, "Error setting camera preview: " + e.getMessage());
}
}

public void surfaceDestroyed(SurfaceHolder holder) {
//Here we can releasing the camera preview activity
}

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// If your preview can change or rotate, take care of those events here.
// Make sure to stop the preview before resizing or reformatting it.

if (surfaceHolder.getSurface() == null){
// preview surface does not exist
return;
}

// stop preview before making changes
try {
cmera.stopPreview();
} catch (Exception e){
}

// set preview size and make any resize, rotate or
// reformatting changes here

// start preview with new settings
try {
camera.setPreviewDisplay(mHolder);
camera.startPreview();

} catch (Exception e){
Log.d(TAG, "Error starting camera preview: " + e.getMessage());
}
}
}

Capturing Picture

After implemented a preview class and view layout to display it, we are ready to start capturing images.
In order to retrieve the images, use the Camera.takePicture() method. This method has four callback function parameters that help to handle the picture. From that parameters we must implement the Camera.PictureCallback interface to receive the data and write it into file.

private PictureCallback mPicture = new PictureCallback() {

@Override
public void onPictureTaken(byte[] data, Camera camera) {

File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
if (pictureFile == null){
Log.d(TAG, "Error creating media file, check storage permissions: " +
e.getMessage());
return;
}

try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
Log.d(TAG, "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d(TAG, "Error accessing file: " + e.getMessage());
}
}
}

Saving Media File
In saving media files there are two standard locations we should consider as a developer.
  • Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) This method returns the standard, shared and recommended location for saving pictures and videos. This directory is public, so other applications can easily discover, read, change and delete files saved in this location. If your application is uninstalled by the user, media files saved to this location will not be removed.
  • Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES) This method returns a standard location for saving pictures and videos which are associated with your application. If your application is uninstalled, any files saved in this location are removed. Security is not enforced for files in this location and other applications may read, change and delete them.
Releasing the Camera

Before the application exits we have to release camera instance and also media recorder.
@Override
protected void onPause() {
super.onPause();
releaseMediaRecorder(); // if you are using MediaRecorder, release it first
releaseCamera(); // release the camera immediately on pause event
}

private void releaseMediaRecorder(){
if (mMediaRecorder != null) {
mMediaRecorder.reset(); // clear recorder configuration
mMediaRecorder.release(); // release the recorder object
mMediaRecorder = null;
mCamera.lock(); // lock camera for later use
}
}

private void releaseCamera(){
if (mCamera != null){
mCamera.release(); // release the camera for other applications
mCamera = null;
}
}
Thats how i came up with the application. 



260 comments:

«Oldest   ‹Older   201 – 260 of 260
sanjupawar said...

Get some amazing and funny youtube videos her and get to know which web series is going to release next in India. viral news in hindi

PRINTERSASSIST said...

It faces criticism for HP Printer in error state status in Windows 10. This usually happens when upgrading to a more moderen OS . At that time , the printer drivers are incompatible with the new update in your system.

The Best Stock Broker said...


In the Stock Market, brokerage is fixed and it may eat up your large amount of profit so you have to be wise in choosing the right stock broker for yourself. Here is the list of lowest brokerage charges in india , you can review and select them as per your need.

georgefernandis said...

Looking for the best motivational, inspirational, love, good morning, life, funny, sad, friendship quotes & status. Stories, suvichar & thoughts in hindi.Browse here for some inspirational quotes, motivational quotes and love, good morning, life, funny & status. Stories, suvichar & thoughts in hindi. hindi motivational quotes

Sam Billings said...

gmail temporary error code 500 is one of the common error codes that you can easily encounter. However, many of you will probably be unable to fix this error problem yourself. If you are unable to repair this error code yourself, follow the steps below to troubleshoot it. also one more issue Gmail Not Receiving Emails

Blogger said...

Hi, I am John Smith I am Web Developer, It is an amazing blog thanks for the sharing the blog. Frantic infotech provide the mobile app development software such as an information about software development for costumer service. Franti infotech also provide the react native mobile app development. The development of advanced web applications is Orient Software’s specialty and we will successfully fulfill all your web application development requirements, from small-sized to wider-ranged projects.

Clark Son said...


When your video display ceaselessly displays the “Sleep” message, then certainly is your brother printer stuck in sleep mode. Follow the steps given below to awaken Brother Printer from deep sleep mode.

rmatushar said...

If you're facing a unfreeze venmo account error whereas you are trying to log in or build payments through your account, then you'll follow one in all the strategies given here to unfreeze it. check that to use the strategy that you simply assume is that the most applicable one.

Henry William said...

If you are facing difficulties while streaming shows from Netflix on your mobile phone, then there might be some issue with the Netflix app or your phone. To fix the Netflix not working issue on your phone, you need to reinstall the app on it or try clearing the cache memory from your device. Else, check your internet connection for any problem.

Unknown said...

If you find your printer not printing properly on your device, then you should try to fix it. To fix a printer in error state Windows 10, you have to run the Windows 10 troubleshooter. For this, go to the “Update and Security" section from the “Start" menu, click “Troubleshoot" and select “Printer" from the given menu. Else, you can check for connectivity issues between the two devices.

Unknown said...

If you want to see the subtitles along with the Prime video you are watching, then you can turn on subtitles on Amazon Prime. For this, play the video of your choice and then select the “speech bubble" icon at the top corner. Now, you can select your preferred language from the given list and the subtitles will start showing up on your screen.

printerrstart said...

I really enjoyed this information.
Thanks for sharing this wonderful piece of information.
When you purchase a new printer, it delivers good results and works smoothly. But, as time passes by, it may give you the worst experience.
Visit our site and get rid of your http//ij.start.canon problem.

Streaming Device Setup said...

It was interesting to read and learn about the Roku streaming device, how to get the roku activation code, and the steps to activate the device. It's simple to grasp, and the instructions are correct. Also, if you're new to Roku, I recommend reading the post as a reference. I enjoy reading your more educational and informative writings.

Neil Patel said...

With the help of the best shayari website in hindi - shayari ka pitara you can easily find the latest birthday shayari in hindi that you can easily share with your friends and say happy birthday to them.

Visit: jpeg optimizer online free

The Best Stock Broker said...


Upstox is one of the best discount brokers in India, especially for traders. Check this Upstox Review to know everything about it such as brokerage charges, demat & trading account, trading platforms, offers & more.

Alex said...

Teknobuilt is a Construction Company that serves the world with licensed Digital Construction Technology approaches from planning and execution of the project. We provide construction site management plan services for better development and our solutions are based on your needs and focus on ensuring productivity, quality, and excellence in our services For more information, contact @ +91-11-41072395, or you can mail us at info@teknobuilt.com.

Software Crafts said...

Software craft is a leading affordable web development services that provide cutting-edge engineering solutions for global companies and helps companies accelerate the adoption of new technologies. Moreover, the software created by our team of professional experts can perfectly meet the needs of users and businesses and is easy to expand, integrate and support. Along with this, we provide a flexible cooperation model, provide transparent services, and are always prepared to take end-to-end responsibility for project results.

Tejas More said...

Paid Guest Posting Site

Gaurav said...

Well placed sun in 8th house is capable of giving sudden gains, sudden monetary or property benefits. · They may confront or suffer from diseases.

Unknow said...

We are a web portal that is 24/7 available for students and provides undeterred Programming Online Exam Help whenever need persists. With our Best Exam Help multiple numbers of students have benefitted. To your rescue, we have a wide range of services such as Finance Online Exam Help and more.

Franticpro said...

Hi, I am John Smith I am Web Developer, It is an amazing blog thanks for the sharing the blog. Frantic infotech provide the phonegap app development such as an information about software development for costumer service. Franti infotech also provide the flutter mobile app development. The development of advanced web applications is Orient Software’s specialty and we will successfully fulfill all your web application development requirements, from small-sized to wider-ranged projects.

claud saille said...

cosmetiques au chanvre

CloudInfotech said...

Grandstream’s GXV3200 and GXV3300 series of IP Video Phones with AndroidTM extend the power of advanced video and audio communications to the desktop while offering tablet-like functionality and web access.

CnW Resources said...

CNW Resources have a professional and enthusiastic team of foreign and local qualified education who provide subpar educational expertise and consultation to students.

Online Casino said...

De beste online casinos van Nederland vind je op online casino 2go.

FamilyTreeMakerHelps said...

The word “FAMILY” plays a vital role in every human life because family comes as a top priority; we are well aware of that. Like a tree has its root, stem, branches, leaf, flowers, the same as the family tree has its structure like grandparents, parents, child, and it keeps continuing from generation to generation. “Family tree,” yeah, just two simple words, but these two words are highly important for everyone’s life.

makemywebsite said...

MakeMyWebsite is a Award-winning website design company in Sydney, Brisbane, Melbourne and geelong. We offers Affordable Custom web design and development services in Sydney. Our agency specializing in creating conversion driven user-centric websites and Our approach towards web design Sydney is unconventional as we leave no stone unturned to provide you with a finished product that you anticipated. read also :- web design Sydney

Alanusa said...

This is really helpful for me. Thanks for sharing this valuable information for free…
Best Assignment Help Tutors

bang bee said...

jual adobe murah

harga adobe murah original

software adobe

Eliana Grace said...

The global Rear Spoiler market estimated at US$2.9 Billion in the year 2020, is projected to reach a revised size of US$4.3 Billion by 2027, growing at a CAGR of 6.1% over the analysis period 2020-2027. ICE, one of the segments analyzed in the report, is projected to record a 6.2% CAGR and reach US$2.4 Billion by the end of the analysis period. After an early analysis of the business implications of the pandemic and its induced economic crisis, growth in the BEV segment is readjusted to a revised 6.7% CAGR for the next 7-year period. The North America region is anticipated to witness considerable growth over the coming years due to domicile of rear spoiler providers such as Magna International and DAR Spoilers.

Dinstar India said...

DAG1000-8S is a multi-functional Analog VoIP Gateway. Dinstar 8 Port FXS Gateway offers 8 FXS ports, fax over IP and flexible dial plans. It is ideally suited for small and medium businesses, call centers and multi-location environments that need VoIP services.

Jennifer Mofi said...

https://gpsdriver.online/

Unknown said...

Hello. I am looking for potential math homework help on an urgent basis. I was also wondering if you could offer engineering homework help and computer science homework help right away. My sisters and I are willing to start off immediately so please do not delay any further. Our exams are inching closer and we want to score well on our exams. In case you are unable to help at least provide any recommendation for us. I will be happy to seek help from you.

Unknown said...

Hi, XXX Videos can be crafted as per your fancy and requirements. You get several benefits from time to time. fresh porn tube and Goa teen sex are living a luxurious life with an urban lifestyle. The gorgeous Goa xxx porn clips aren’t afraid to show off their seductive side when it comes to titillating the guests.

FamilyTreeMakerHelps said...

Some popular Gps devices like- Magellan devices like magellan maestro 3200,magellan roadmate 1440,magellan maestro 4040, magellan roadmate 5235t-lm,magellan roadmate 1700,magellan roadmate 1470, and other old and newer models. We’ll help you to get easy maps, software / Firmware updates.

Are you planning a trip or going out and wondering if you could have the latest maps to make your trip or your work. Well, you’re a step away from the latest map updates. Latest map updates make sure that you always reach your destination on time with full-proof accuracy.
https://mydashupdates.com/index.php/magellan-roadmate-updates/

Benjamin said...

It would be pretty difficult to set up their HP Printer in a suitable way. The unprotected 123.hp.com printer users may vary for generative instruction for the printer tool. That’s why; our technical engineers have fixed to advance a website

zarkazijar said...

You’re a very skilled blogger, you have done really a fantastic job in putting up these amazing reads,  have joined your feed, and look forward to seeing more of your excellent post. ysu approved school fees payment

Gaurav said...

six of pentacles love The 6 of pentacles represents a rich man clad up in a red robe giving coins to two needy beggars, kneeling right at his foot.

Gaurav said...

When a person has sun 1st house, it showcases a strong, confident persona with leadership capabilities. At the same time, when the person.

ella said...

I absolutely love your website.. Pleasant colors & theme. Did you build this web site yourself? Please reply back as I’m wanting to create my very own website and would love to learn where you got this from or just what the theme is named. Kudos! Kalyan matkà result today | Kalyan night matka

domnic torato said...

While you are in the middle of something very important, you don’t want to be disturbed. In such a case, you might also get a ping from one of your Facebook friend that can be a very irritating situation. However, you can immediately unfriend or remove that friend from your Facebook account and start doing your work. To understand How Do I Unfriend or Remove a Friend on Facebook, you have to go to the official help section.

domnic torato said...

The appearance of the requirement to find Why Can’t I Add Cash to My Cash App may arise anytime. These days, people are trying to know the reason that is preventing them from including cash in the cash app account. Such an aspect has become one of the most important things among cash app users. They should work on it for a solution and must find out why they might face the troubles without any notification. The cash app system needs to manage as per the rules and that would help you find the solution for handling the cash app account with no delays to meet the cash app needs.

Assignment Helper said...

Everyone has gotten so busy with their schools and colleges that they keep running out of time to meet their deadlines. All social institutions have such a vast syllabus that there is only so much a student can do. It's no wonder that students are seeking online homework help externally. Every student has to prepare for tests, work on group projects, and keep up with co-curricular activities. There is no getting out of it, so there is hardly any time left for homework.

Writer said...

Get quality help with writing a film critique essay from our qualified writers online in a very short time. Don't doubt its professionalism as our writing service was announced as one of the most reliable ones.

frt said...

Kim en iyi nakliye firmasıyla çalışmak istemez ki? avcılar evden eve nakliyat hizmetten en hızlısı esenyurt nakliye kamyonet güvenilir.

Kaviyasree said...

This blog is informative and useful.Learning Primavera P6 in Credo Systemz can have its advantages and lead to a great career in project planning & scheduling. Learning Primavera P6 in Credo Systemz can have its advantages and lead to a great career in project planning & scheduling.

Primavera Training in Chennai

Python Training in Chennai said...

This Blog is very informative . Today i am gonna share about the python course for both freshers and experienced candidates . This Python course in Chennai will provide you with hands-on programming experience and prepare you to be a professional with an excellent Python programming career.

Python Training in Chennai

Oms99 said...

1.5 mg/1.5 mg/2.5 mg Kidylinctus Three active drugs are present in the syrup. Kidylinctus 1.5mg operate in tandem to successfully treat dry cough (cough without mucus) in children caused by allergic disorders such as the common cold or hay fever. It also aids in the relief of symptoms such as a runny nose, stuffy nose, sneezing, or watery eyes. You can get it from Oms99.

YouTube to mp3 converter said...

Are you tired of constantly streaming your favorite songs on YouTube? Do you wish you could listen to them offline? Our YouTube to mp3 converter is the perfect solution for you.

JOHNLUCIFER9661 said...

Great Assignment helper can provide expert assistance to students seeking assignment help online. With experienced professionals offering comprehensive support, students can improve their understanding of complex literary concepts, develop practical skills, and achieve better grades in their coursework. However, it's crucial to choose a reliable and competent service that delivers high-quality and original work while meeting strict deadlines to ensure academic success. Great Assignment helper can be a valuable resource for students looking for reliable and efficient English assignment help. With their expertise and experience, they can provide effective assistance to help students achieve their academic goals.

JOHNLUCIFER9661 said...

Great Assignment helper offers reliable online online project management assignment help to students seeking assistance with their coursework. With experienced professionals providing comprehensive support, students can develop practical skills and improve their understanding of complex project management concepts to achieve better grades in their assignments.

JOHNLUCIFER9661 said...

Great Assignment Helper offers expert guidance and support for Online students seeking assistance in completing their coursework. Its team of How Essay Writers In Australia Can Help You With Every Academic Work provides customized solutions to help students understand complex business concepts and achieve academic success. With a focus on quality and affordability, Great Assignment Helper is a trusted source of academic support for Online students worldwide

Fajil Hura said...

Visit Optima Travels to go through a variety of Himachal Tour Packages And Shimla Tour Packages that are excitingly discounted. Book a customized Himachal tour with fantastic discounts & promotions. The Himachal vacation packages provide an authentic piece of the Himalayan Paradise and are comprehensively developed to meet the interests of every tourist. These Himachal Pradesh packages make sure that visitors get to experience the state's majesty in its entirety while they are there. Nestled in the lap of the towering mountains, Himachal is home to some of nature's most magnificent bounty. You can also take South India Tour Packages in a single click.

Assignment Help Online said...

Very nice post and blog, I found it very explanatory and informative, thank you very much for sharing your knowledge and wisdom with us.We provide Online Exam Help to students.• If you require any help in completing an assignment, our tutors have the relevant qualifications and experience to offer the assistance that you need, regardless of your area of study.

gratissoftsolutions said...

It’s important to keep the ears dry and wipe off the wax to avoid ear-infections. Dry the ears after every outdoor play session as well as baths. Ears that are long and closed are at a greater risk of getting infected.visit k9nerds

Lisa Jane said...

Mathematics, with its complex equations and challenges, often appears as a daunting mountain to conquer. However, there's no need for concern! Our Take My Math Exam For Me service embodies the pinnacle of excellence and reliability. With our team of math specialists, we're equipped to unravel and simplify even the most complex mathematical puzzles. Say goodbye to math anxieties and hello to confidence. With our expertise, achieving excellence in math is just a click away. Join us on this journey and cement your mastery in the fascinating world of mathematics.

Unknown said...

Ignite Speech hosts the expertise of the Best Speech Therapists in Odisha. Our team offers personalized interventions and effective therapies, tailoring sessions to individual needs. Trust our skilled professionals for comprehensive care, guiding individuals towards improved communication skills and fostering confidence in speech and language abilities.

Lumiere Holidays said...

Discover blissful journeys through Kerala's backwaters with our exclusive Kerala Houseboat Trip Packages. Sail along tranquil waters, relishing the beauty of verdant landscapes from luxurious houseboats. Lumiere Holidays crafts personalized trips, ensuring an immersive experience of Kerala's natural splendor and rich heritage. Book now for an unforgettable voyage!

Ronaldo said...

Unleash the power of seamless crypto wealth management with aarnâ, your ultimate financial companion in the digital realm!

Navigate the complexities of the crypto market effortlessly, as aarnâ empowers you to make informed decisions, optimize your portfolio, and secure your financial future.

Why choose aarnâ?
✅ Intelligent Analytics: Stay ahead with real-time market insights.
✅ Risk Mitigation: Safeguard your investments with advanced risk management.
✅ User-Friendly Interface: Effortlessly manage your crypto assets with a simple, intuitive platform.

Join the revolution in crypto wealth management and embark on a journey towards financial prosperity. Don't miss out on the next wave of opportunities – let aarnâ be your guide!

Joe Paol said...

Exceptional car rental in Goa and thar rental in Goa! Siddhivinayak has truly made my travel experience memorable with their top-notch fleet and impeccable customer service. The ease of booking, well-maintained vehicles, and competitive prices set them apart. Whether you're exploring the scenic beauty or cruising along the coastline, Siddhivinayak ensures a hassle-free journey. Highly recommended for anyone seeking reliable and comfortable car rental in Goa airport and car rental in Mopa airport.

«Oldest ‹Older   201 – 260 of 260   Newer› Newest»