tag:blogger.com,1999:blog-11966935541954965592024-02-21T07:47:38.055+03:00AndroTipsYet Another Android Blog...Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-1196693554195496559.post-44643255390639841962012-03-23T10:33:00.001+02:002012-03-23T10:35:12.594+02:00Enable Button Inside A List ItemProbably most of us needed this kind of rich ListView items that contains several views including buttons. For example when you're building an iOS like ListView that have "Delete" buttons in every list item.<br />
<br />
Having a button means that you need to listen the click events on that button. But, if the button is inside a list item, you can not simply sense the clicks to the button, because ListView's OnItemClickListener overwhelms all the click events on that item. In order to avoid this and make your button clickable you need to do the following changes...<br />
<div>
<br /></div>
<div>
At first you need to set <span style="color: magenta; font-family: 'Courier New', Courier, monospace;"><b>android:focusable</b></span> and <span style="color: magenta; font-family: 'Courier New', Courier, monospace;"><b>android:focusableInTouchMode</b></span> attributes of your button inside the list item to "<span style="color: magenta; font-family: 'Courier New', Courier, monospace;"><b>false</b></span>".<br />
<br /></div>
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><code><Button
.....
android:focusable="false"
android:focusableInTouchMode="false"
.....
>
</Button>
</code></span></pre>
<div style="font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt;">
<code>
</code></div>
<div style="font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div style="font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt;">
<code>
</code></div>
</div>
<br />
The next thing you need to do is setting an OnClickListener to your button inside your list adapter class. You can achieve this by adding a parameter to your adapter's constructor and/or adding a setter method to the adapter that sets the button's OnClickListener.
<br />
<br />
In my example I put an OnClickListener instance as a field in my adapter and I set it in my constructor and also added a setter for the field.<br />
<br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><code>
public class MyAdapter extends BaseAdapter {
.....
public OnClickListener listener;
.....
public MyAdapter (Context context, OnClickListener listener) {
this.context = context;
mInflater = LayoutInflater.from(this.context);
this.listener = listener;
}
public void setButtonListener(OnClickListener listener) {
this.listener = listener;
}
.....
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView =
mInflater.inflate(R.layout.my_list_row, null);
holder = new ViewHolder();
...
holder._button =
(Button) convertView
.findViewById(R.id.listRowButton);
...
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
.....
if (this.listener != null) {
holder._button.setOnClickListener(this.listener);
}
.....
}
}
</code></span></pre>
<div style="font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt;">
<code>
</code></div>
</div>
<br />
And lastly you need to set an OnClickListener to your adapter instance where you set your ListView's adapter inside your Activity. And this is the tricky part that you need to sense which list item's button has received a click event by by using a for loop. (It doesn't look so efficient, but this was the easiest way to achieve my goal, so I did it like this. If you have any other efficient solutions please provide a comment.)<br />
<br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><code>
ListView myList = (ListView) findViewById(R.id.myList);
// Firstly I set the OnClickListener as null.
MyAdapter adapter = new MyAdapter(this, null);
.....
// Here is where I set the listener for button inside list item.
myAdapter.setButtonListener(new OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < _listView.getChildCount(); i++) {
if (v == _listView
.getChildAt(i).findViewById(R.id.listRowButton))
{
// Do Something on Button Click
}
}
}
}});
.....
myList.setAdapter(myAdapter);
</code></span></pre>
<div style="font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt;">
<code>
</code></div>
</div>
<br />
That's it! You can do whatever with your list item's button now. You can also use the same procedure with CheckBoxes, RadioButtons or any other Views.<br />
<br />
Enjoy!Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com4tag:blogger.com,1999:blog-1196693554195496559.post-27685638435478147602011-01-21T12:04:00.000+02:002011-01-21T12:04:49.831+02:00Force Apps to Move to SD Card (on Froyo)In my last post I've explained about how to make your application installable to SD Card. Later I found this great blog post about moving any other application to SD Card, without having the source code. After following those steps, you will be able to move (to SD) all the applications you downloaded and installed.<br />
<br />
So this is not only for developers, but also for standard users:<br />
<br />
<a href="http://www.lorinbute.com/posts/how-to-force-apps-to-move-to-the-sd-card-on-froyo.html">http://www.lorinbute.com/posts/how-to-force-apps-to-move-to-the-sd-card-on-froyo.html</a><br />
<br />
Enjoy!Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com1tag:blogger.com,1999:blog-1196693554195496559.post-48567350824644491122011-01-14T15:08:00.000+02:002012-03-22T14:38:37.600+02:00How to Enable Move to SD Card Feature for Your App?Well, because I was busy during last several months, I couldn't post anything to my blog. Now it's time to continue posting.<br />
<br />
Today's issue is enabling the App2SD feature for an application. As you know, when Google introduced the Froyo, they clearly stated that it would have the App2SD. So it is, but with a difference. They made it up to developers to allow the application movement to the SD card. If the user has Android 2.2 installed on their device and you haven’t applied this tip, they’ll see an unuseful, grayed out, button when they try to move the application to their SD card. Developers must specifically enable this feature within their applications.<br />
<br />
Now it's time to learn how to do it for our applications, i will explain step by step.<br />
<br />
First we should modify your Manifest file as follows to add android:installLocation entry to the <manifest> tag:<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourpackagename"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="auto">
</code>
</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
<br />
We set the value to “auto” so that the users of our application will be able to decide where to install the application. Another possible values could be “internalOnly” which is the same as the behavior without this setting, and “preferExternal,” which will install the application on the SD card first, if it’s available.<br />
<br />
After we set the installLocation key, we will get the following error:<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code>error: No resource identifier found for attribute ‘installLocation’ in package ‘android’</code>
</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
<br />
This is because we didn't target our project to API Level 8. If we don't target the application to API Level 8, it can't have the App2SD feature. In order to do this we must change the project property "build target". Simply navigate to Properties (right-click on the project in Eclipse) and choose a target with at least API Level 8.<br />
<br />
Now our application is ready to move to SD Card of any Android 2.2 device.<br />
<br />
Load the application to a 2.2 device or emulator, then navigate to application management. You will see the "Move to SD" button enabled for the application.<br />
<br />
Enjoy!Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com1tag:blogger.com,1999:blog-1196693554195496559.post-30070001279027639482010-07-31T12:48:00.002+03:002012-03-22T14:40:15.102+02:00Live Camera Preview on AndroidAndroid SDK provides a full control on Android devices' hardware, so that you can use any component of your device in your applications. Thanks to this feature, you can use your device's camera to obtain live camera preview in your application. So that, you can build your own camera application with additional features.<br />
<br />
Basically in a camera application, you need a camera surface and a button to take photos. First we start with getting required permission for Camera component. Also put a control into the activity tag to keep screen in landscape mode.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> <uses-permission</code> android:name = "android.permission.CAMERA"/>
<activity .......
android:screenOrientation="landscape" ...... >
</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
<br />
Then we create a simple layout includes a SurfaceView and a Button.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code><?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView
android:id="@+id/preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
</SurfaceView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonTakePhoto"
android:text="Click"
android:gravity="center">
</Button>
</LinearLayout></code></span></pre>
</div>
<br />
Now we are ready to build our application to put the camera preview into our SurfaceView and to set the button's behavior for taking photos. Our activity must implement the SurfaceHolder.Callback interface in order to provide a camera preview.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> </code>// Let's name our Activity as CamDroid.
public class CamDroid extends Activity implements SurfaceHolder.Callback</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
Then we create our Camera, Surface and Button fields which will be initialized when our activity is started.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> </code> private Camera mCamera;
private Button takePictureButton;
private SurfaceView mSurfaceView;
private SurfaceHolder mSurfaceHolder;</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
After this fields we need to declare which actions will be performed when user takes a photo.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> </code> Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera c) {
FileOutputStream outStream = null;
try {
// Directory and name of the photo. We put system time
// as a postfix, so all photos will have a unique file name.
outStream = new FileOutputStream("/sdcard/CamDroid_" +
System.currentTimeMillis()+".jpg");
outStream.write(data);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
Log.e(TAG, "PICTURE CALLBACK: data.length = " + data.length);
mCamera.startPreview();
}
};</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
Now we can implement the onCreate method of the Activity to initialize our surface and Button.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> </code> public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
// We don't need a title for our camera window.
// It makes our view smaller.
requestWindowFeature(Window.FEATURE_NO_TITLE);
Log.e(TAG, "onCreate");
getWindow().setFormat(PixelFormat.TRANSLUCENT);
// In my case, name of the layout file is camdroid.xml
setContentView(R.layout.camdroid);
// Initialize the surface
mSurfaceView = (SurfaceView)findViewById(R.id.preview);
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
// Initialize the Button
takePictureButton = (Button)findViewById(R.id.buttonTakePhoto);
// Set the button's behavior
takePictureButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mCamera.takePicture(null, null, mPictureCallback);
}
});
}</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
Then we must provide some methods for our surface to create first preview, change preview, and stop preview.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> </code> // Create camera preview.
public void surfaceCreated(SurfaceHolder holder)
{
Log.e(TAG, "surfaceCreated");
mCamera = Camera.open();
//mCamera.startPreview();
}
// Change preview's properties (i.e. size or format).
public void surfaceChanged(SurfaceHolder holder,
int format, int w, int h)
{
Log.e(TAG, "surfaceChanged");
// XXX stopPreview() will crash if preview is not running
if (mPreviewRunning) {
mCamera.stopPreview();
}
Camera.Parameters p = mCamera.getParameters();
p.setPreviewSize(w, h);
mCamera.setParameters(p);
try {
mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCamera.startPreview();
mPreviewRunning = true;
}
// Stop the preview.
public void surfaceDestroyed(SurfaceHolder holder)
{
Log.e(TAG, "surfaceDestroyed");
mCamera.stopPreview();
mPreviewRunning = false;
mCamera.release();
}</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
Now we have a basic camera application which has a camera preview and a button on screen. You can start taking photos with your applications by pressing the button on the screen. Or you can add this method to use your device's built-in "OK" Button (Trackpad for HTC, OK Button for Samsungs etc.) for taking photos.<br />
<br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> </code> public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK) {
return super.onKeyDown(keyCode, event);
}
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
mCamera.takePicture(null, null, mPictureCallback);
return true;
}
return false;
}</span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
ScreenShot:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnp6RpA9OCDV4SN6MTnDSZkIoIRWSW9GNQwvDH6_-SdCHmRK5H_bf1542k4IlF_6yMoP9UuY7vcxBfCLlZtjOWkK5O3MytoydrmjflGdoHYDU9jGk_0sVuyyI-oOTcyhFY79OQAAI0q6w/s1600/device.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnp6RpA9OCDV4SN6MTnDSZkIoIRWSW9GNQwvDH6_-SdCHmRK5H_bf1542k4IlF_6yMoP9UuY7vcxBfCLlZtjOWkK5O3MytoydrmjflGdoHYDU9jGk_0sVuyyI-oOTcyhFY79OQAAI0q6w/s320/device.png" /></a></div>
<br />
Enjoy your new camera applications and take good photos :)Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com15tag:blogger.com,1999:blog-1196693554195496559.post-35399719518997545462010-07-28T21:40:00.003+03:002012-03-22T15:03:08.705+02:00Create your own Browser using WebView<span style="font-family: inherit;">Using a Web<span style="font-family: inherit;">View activity, you can display webpages over the Internet or display webpages or any other content from your device's drive. You might use this webview as a Webkit in your applications to display web contents</span>, which can even have integrated Javascripts.</span><br />
<span style="font-family: inherit;"><br />
</span><br />
<span style="font-family: inherit;">WebView activity will use the Internet, so you must add the Internet usage permission in your AndroidManifest.xml file.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><code> <uses-permission</code> android:name = "android.permission.INTERNET"/></span></pre>
</div>
<span style="font-family: inherit;">In order to create a WebView, firstly you must create your layout including a WebView content. You can put a WebView into your layout xml file and in set its width and height as "fill_parent" to reach a fullscreen view.</span><br />
<span style="font-family: inherit;"><br />
</span><br />
<span style="font-family: inherit;">Then in your main Activity, define a WebView and associate it with your layout.</span><br />
<br />
<div style="background-color: #999999; border: 1px dashed #999999; font-family: 'Consolas','Courier New',Courier,Fixed; font-size-adjust: none; font-size: 11pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow: auto; padding: 5px;">
<pre><code> mWebView = (WebView) findViewById(R.id.web_view);</code></pre>
</div>
<code><span style="font-family: Times, 'Times New Roman', serif;">For a WebView you have a few choices about displaying contents. You can open a URL, you can create your HTML code inside your Activity and display it, you can open HTML files from your device's drive and also you can display other contents from your device's drive.</span> </code><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span><br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> // Loading a URL</code></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> mWebView.loadUrl("http://www.androtips.com");</code></span></pre>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code></code></span></div>
</div>
<br />
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> // Loading HTML code created in the Activity</code></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> String data = "<html><body><h2>Hello WebView</h2></body></html>";</code></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> String mimeType = "text/html";</code></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> String encoding = "utf-8";</code></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> mWebView.loadData(data , mimeType , encoding);</code></span></pre>
</div>
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-family: Consolas, 'Courier New', Courier, Fixed; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> // Loading an HTML file or any content from sd card</code></span></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> String filePath = "</code>file:///data/data/com.webkitdemo/test.html";</span></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><code> </code>mWebView.loadUrl(filePath);</span></span></pre>
</div>
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">
</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"> Now you have a basic WebView to display your contents. The problem with this default WebView is, when you click to a link in the webpage, Android will attempt to open its default Browser. Of course we want to open any links from our WebView open in our own WebView. To do this, we must add this small inner-class to our Activity.</span><br />
<div>
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></div>
<div>
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-size: 11pt; font-style: normal; font-variant: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><span class="Apple-style-span"><code style="font-family: Consolas, 'Courier New', Courier, Fixed; font-weight: normal;"> </code><span style="font-family: 'Courier New', Courier, monospace;"><b>private class mWebViewClient extends WebViewClient {
/** Opens new links in the same WebView instead of opening it in Browser Application.</b></span></span></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span style="font-family: 'Courier New', Courier, monospace;"><b>*
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view , String url) {</b></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><b>view.loadUrl(url);
return true;
}
}</b></span></span></pre>
</div>
</div>
<br />
<span style="font-family: inherit;">Another good feature to add to our activity is setting the behavior of the Back button of device. So that we can go back from a link we went from our WebView.</span><br />
<br />
<div>
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-size: 11pt; font-style: normal; font-variant: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><span class="Apple-style-span"><code style="font-family: Consolas, 'Courier New', Courier, Fixed; font-weight: normal;"> </code><span style="font-family: 'Courier New', Courier, monospace;"><b>@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}</b></span></span></span></pre>
</div>
</div>
<br />
<span style="font-family: inherit;">Because we have small display sizes on mobile devices, we might need to add zoom controls to our WebView to enhance readability. In order to add zoom controls, you must add this controls into your onCreate method.</span><br />
<br />
<div>
<div style="background-color: #999999; border-bottom-color: rgb(153, 153, 153); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: dashed; border-top-width: 1px; font-size: 11pt; font-style: normal; font-variant: normal; line-height: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><span class="Apple-style-span"><code style="font-family: Consolas, 'Courier New', Courier, Fixed; font-weight: normal;"> </code><span style="font-family: 'Courier New', Courier, monospace;"><b>@Override
public void onCreate(Bundle savedInstanceState) {
...
...</b></span></span></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span style="font-family: 'Courier New', Courier, monospace;"><b>// Zoom controls
FrameLayout mContentView = (FrameLayout) getWindow().getDecorView().findViewById(android.R.id.content);
final View zoom = this.mWebView.getZoomControls();
mContentView.addView(zoom, ZOOM_PARAMS);
zoom.setVisibility(View.GONE);</b></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span style="font-family: 'Courier New', Courier, monospace;"><b>...</b></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span style="font-family: 'Courier New', Courier, monospace;"><b>...</b></span></pre>
<pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span"><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><b>}</b></span></span></pre>
</div>
</div>
<br />
<span style="font-family: inherit;">Your WebView is ready to use now. You can display any content in this WebView and integrate it into your Applications.</span><br />
<span style="font-family: inherit;"><br />
</span><br />
<span style="font-family: inherit;">Enjoy!</span>Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com4tag:blogger.com,1999:blog-1196693554195496559.post-12006264395554361412010-07-26T19:44:00.001+03:002010-07-26T19:47:03.785+03:00Development Using Eclipse IDE<div style="text-align: justify;"><br />
<br />
In this first blog post about Android Development, I would like to explain how to start development using Eclipse IDE and Android SDK (On MS Windows).<br />
<br />
<br />
<ol><li style="text-align: justify;">Firstly you must download and install <a href="http://java.sun.com/javase/downloads/index.jsp">Java SE Development Kit</a> (JDK) in order to use Eclipse IDE.</li>
<li style="text-align: justify;">Then download the <a href="http://developer.android.com/sdk/index.html">Android SDK</a>.</li>
<li style="text-align: justify;">After downloading, create a directory named android, on your local disk C. (C:\android)</li>
<li style="text-align: justify;">Extract the android_sdk zip file into the C:\android directory.</li>
<li style="text-align: justify;">Now you need an easy setting in order to use Android SDK on Windows. Right-click to <b>Computer</b>, then click <b>Properties</b>. In the Properties window, open <b>Advanced</b> tab. Click the <b>Environment Variables</b> button at bottom-right side.,</li>
<div class="separator" style="clear: both; text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2DpmgIy1VamESfB1ynWRURZuJHti-0n0cIREOfLWXeV8967IqQL57FIN7PzI5kCAE4JSrAYyt-iBO8ToKu7FGZPY3HZLBe899-5iK7MyPhmFd9cTb3rAAk9w6QyEfa_psiSw65U5a3kc/s1600/21.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2DpmgIy1VamESfB1ynWRURZuJHti-0n0cIREOfLWXeV8967IqQL57FIN7PzI5kCAE4JSrAYyt-iBO8ToKu7FGZPY3HZLBe899-5iK7MyPhmFd9cTb3rAAk9w6QyEfa_psiSw65U5a3kc/s320/21.jpg" /></a></div><div class="separator" style="clear: both; text-align: justify;">
</div>
<li style="text-align: justify;">In the <b>User Variables</b> view, double-click the <b>Path</b> to change this variable. As <b>Variable Value</b>, write <i><b>C:\Program Files\Java\jre6bin</b></i> then click OK.</li>
<div class="separator" style="clear: both; text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg35pMx1p6DEJx9ATTju_6I3WGWKl4DM21ZWLsScol4bElM5uy5PGeJvA61gbnVU_nmDhM9E37dXuWFrK8H_BnZ3ECWNNu5Rz0ZA4pqByq7tekXcHDsp-mIX7oUHEPbTHFaiM24cB_y37c/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg35pMx1p6DEJx9ATTju_6I3WGWKl4DM21ZWLsScol4bElM5uy5PGeJvA61gbnVU_nmDhM9E37dXuWFrK8H_BnZ3ECWNNu5Rz0ZA4pqByq7tekXcHDsp-mIX7oUHEPbTHFaiM24cB_y37c/s320/10.jpg" /></a></div><div class="separator" style="clear: both; text-align: justify;">
</div>
<li style="text-align: justify;">In the <b>System Variables</b> view, double-click the <b>Path</b> to change this variable. Add the android tools directory to the end of the current value in <b>Variable Value</b> as <b><i>C:\android\tools</i><span class="Apple-style-span" style="font-weight: normal;"> then click OK</span></b>.</li>
<div class="separator" style="clear: both; text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbmN5L4bFocHx3wp1-p-vu2cvAz1lCKEtEU-dox2-bHhoGWz9__3xSEWT68hEElH6z7JQIhR0Cb495VzS87TICIdHbgy6ncBq40Omdy9_JzhFped-OM22Khez-wTRZT7ndgQJh9i9O1XI/s1600/41.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbmN5L4bFocHx3wp1-p-vu2cvAz1lCKEtEU-dox2-bHhoGWz9__3xSEWT68hEElH6z7JQIhR0Cb495VzS87TICIdHbgy6ncBq40Omdy9_JzhFped-OM22Khez-wTRZT7ndgQJh9i9O1XI/s320/41.jpg" /></a></div><div class="separator" style="clear: both; text-align: justify;">
</div>
<li style="text-align: justify;">Now you are ready to use Eclipse IDE. You can download the latest version of Eclipse from the official <a href="http://www.eclipse.org/downloads/">download</a> page. You can choose the type of your operating system from the list and start download.</li>
<li style="text-align: justify;">Create a directory named eclipse, in your local disk C.(C:\eclipse) </li>
<li style="text-align: justify;">Extract the eclipse zip file into the C:\eclipse directory.</li>
<li style="text-align: justify;">Double-click eclipse.exe to open Eclipse IDE and specify your workplace directory as you wish.</li>
<li style="text-align: justify;">In the Eclipse main window, click <b>Help > Software Updates</b>. Then click on <b>Available Software</b> tab and click on <b>Add Site</b> button.</li>
<li style="text-align: justify;">In the Add Site window, write <b>https://dl-ssl.google.com/android/eclipse</b> as <b>Locatio</b>n value.</li>
<li style="text-align: justify;">Then click the checkbox of the site you added and click <b>Install Software</b> button.</li>
<li style="text-align: justify;">After installing, Eclipse will restart itself.</li>
<li style="text-align: justify;">Now click <b>Window > Preferences</b> on Eclipse menu. Choose <b>Android</b> from left frame and write C:\android to the <b>SDK Location</b> box.</li>
<div class="separator" style="clear: both; text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge24FUZ7BTvDKX-9FO5EKSZMbn516rafTaSabiPfSeAkgO-fi0VTQSILI_x41FO7HmZe47jgslg12f3T2hwbYzCiggfsDO7TSzDgh9LPbzNfNHhXduk_DswaBRjm_vuvFrJKb4DnAmixo/s1600/131.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge24FUZ7BTvDKX-9FO5EKSZMbn516rafTaSabiPfSeAkgO-fi0VTQSILI_x41FO7HmZe47jgslg12f3T2hwbYzCiggfsDO7TSzDgh9LPbzNfNHhXduk_DswaBRjm_vuvFrJKb4DnAmixo/s320/131.jpg" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge24FUZ7BTvDKX-9FO5EKSZMbn516rafTaSabiPfSeAkgO-fi0VTQSILI_x41FO7HmZe47jgslg12f3T2hwbYzCiggfsDO7TSzDgh9LPbzNfNHhXduk_DswaBRjm_vuvFrJKb4DnAmixo/s1600/131.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><a name='more'></a></a>
</ol><div><br />
</div><div>Congratulations! You are now ready to develop your applications.</div><div><br />
</div><div>Good luck :)</div></div>Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com10tag:blogger.com,1999:blog-1196693554195496559.post-90487695273384540182010-07-24T14:21:00.001+03:002010-07-24T14:35:58.124+03:00Hello AndroidI know that there are lots of Android Development Blogs over the Internet, but i just would like to open my own blog to share my experiences on Android Development. In this blog, you will find useful tips and Android programming examples, which I tried and used for my projects.<br />
<br><br />
<br><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4M7nXsyZFSXfw30meIoBsnD6rCypF1mCcKan0-btguz29L0IG1u9wzUid8FX5Ov3Eg6QEBxCRWi-FIAUDjFJQCwqXJRw9EetFi-poIuhLZPt5HBjzpLDCqStSmkfVzMDiZEWF6gh8eNk/s1600/andro.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4M7nXsyZFSXfw30meIoBsnD6rCypF1mCcKan0-btguz29L0IG1u9wzUid8FX5Ov3Eg6QEBxCRWi-FIAUDjFJQCwqXJRw9EetFi-poIuhLZPt5HBjzpLDCqStSmkfVzMDiZEWF6gh8eNk/s400/andro.jpg" width="400" /></a></div><br><br />
<br><br />
I hope you will find this blog useful, and please leave comments if you have advices for me.<br />
<br />
Hello again and enjoy!Yasin Yildirimhttp://www.blogger.com/profile/10643070188419569748noreply@blogger.com14