skip to main | skip to sidebar

Android Development Tutorial

Pages

  • Home
 
  • RSS
  • Twitter
Related Posts Plugin for WordPress, Blogger...
Sunday, October 7, 2012

3D Rotation in Android

Posted by Raju Gupta at 1:19 PM – 0 comments
 

Android provides Animation API. By using we can create custom animations . Android sample provides Animation classes for some standard types like 3D rotation, Push up , shake etc.

Step 1 : include Rotate3dAnimation.java file in your package.
Step 2 : create a reportview.xml as layout file.
Step 3 : below is code to provide 360 degree rotation and display a html file from assets folder.


XML file Layout code  

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/container" android:layout_width="match_parent"
 android:layout_height="match_parent">

 <WebView android:layout_height="fill_parent"
  android:layout_width="fill_parent" android:id="@+id/webAnim1"></WebView>
 <WebView android:id="@+id/webAnim" android:layout_height="fill_parent"
  android:layout_width="fill_parent"></WebView>

</FrameLayout>

public class HTMLReportDisplay extends Activity {

 private ViewGroup mContainer;
 private WebView mWebView;
 private WebView mWebView1;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.reportview);

  mContainer = (ViewGroup) findViewById(R.id.container);
  mWebView = (WebView) findViewById(R.id.webAnim);
  mWebView1 = (WebView) findViewById(R.id.webAnim1);

  String report = "name of html file from asset folder";
  mWebView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
  mWebView.getSettings().setBuiltInZoomControls(true);
  mWebView.loadUrl("file:///android_asset/" + report + ".html");
  

  mWebView1.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
  mWebView1.getSettings().setBuiltInZoomControls(true);
  mWebView1.loadUrl("file:///android_asset/" + report + ".html");
  /** Since we are caching large views, we want to keep their cache
    between each animation*/
  mContainer
    .setPersistentDrawingCache(ViewGroup.PERSISTENT_ANIMATION_CACHE);

  applyRotation(1, 90, 0);
 }

 /**
  * Setup a new 3D rotation on the container view.
  * 
  * @param position
  *            the item that was clicked to show a picture, or -1 to show the
  *            list
  * @param start
  *            the start angle at which the rotation must begin
  * @param end
  *            the end angle of the rotation
  */
 private void applyRotation(int position, float start, float end) {
  // Find the center of the container
  final float centerX = mContainer.getWidth() / 2.0f;
  final float centerY = mContainer.getHeight() / 2.0f;
  /** Create a new 3D rotation with the supplied parameter
   The animation listener is used to trigger the next animation*/
  final Rotate3dAnimation rotation = new Rotate3dAnimation(start, end,
    centerX, centerY, 310.0f, true);
  rotation.setDuration(400);
  rotation.setFillAfter(true);
  rotation.setInterpolator(new AccelerateInterpolator());
  rotation.setAnimationListener(new DisplayNextView(position));

  mContainer.startAnimation(rotation);
 }

 /**
  * this function is called when any key is pressed.
  */
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  switch (keyCode) {
  /** Check if back button key is pressed */
  case KeyEvent.KEYCODE_BACK:
   applyRotation(-1, 180, 0);
   new Handler().postDelayed(new Runnable() {

    public void run() {
     finishActivity();

    }
   }, 300);

   break;
  }
  return super.onKeyDown(keyCode, event);
 }

 private void finishActivity() {
  finish();
 }

 /**
  * This class listens for the end of the first half of the animation. It
  * then posts a new action that effectively swaps the views when the
  * container is rotated 90 degrees and thus invisible.
  */
 private final class DisplayNextView implements Animation.AnimationListener {
  private final int mPosition;

  public DisplayNextView(int position) {
   mPosition = position;
  }

  public void onAnimationStart(Animation animation) {
  }

  public void onAnimationEnd(Animation animation) {
   mContainer.post(new SwapViews(mPosition));
  }

  public void onAnimationRepeat(Animation animation) {
  }
 }

 /**
  * This class is responsible for swapping the views and start the second
  * half of the animation.
  */
 private final class SwapViews implements Runnable {
  private final int mPosition;

  public SwapViews(int position) {
   mPosition = position;
  }

  public void run() {
   final float centerX = mContainer.getWidth() / 2.0f;
   final float centerY = mContainer.getHeight() / 2.0f;
   Rotate3dAnimation rotation;

   if (mPosition > -1) {
    mWebView.setVisibility(View.GONE);
    mWebView1.setVisibility(View.VISIBLE);
    mWebView1.requestFocus();

    rotation = new Rotate3dAnimation(180, 0, centerX, centerY,
      310.0f, false);
   } else {
    mWebView1.setVisibility(View.GONE);
    mWebView.setVisibility(View.VISIBLE);
    mWebView.requestFocus();

    rotation = new Rotate3dAnimation(90, 0, centerX, centerY,
      310.0f, false);
   }

   rotation.setDuration(500);
   rotation.setFillAfter(true);
   rotation.setInterpolator(new DecelerateInterpolator());

   mContainer.startAnimation(rotation);
  }
 }
}

[ Read More ]
Read more...

Custom Bar Control for Android using Java

Posted by Raju Gupta at 1:15 PM – 1 comments
 

The solution has customized bar control with lot of functions to set various features of control like color, percentage value.
The solution contains the source code for bar control that can be readily integrated to an Android project.


package com.sample.Applicationbar;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Paint.FontMetrics;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;


public class BarClass extends View {
 private Paint paint;
 private long total,covered;
  
 public BarClass(Context context, AttributeSet attrs) {
  super(context, attrs);
  // TODO Auto-generated constructor stub
 
  
  
 }
 public void onDraw(Canvas canvas) {
  String text="25";
  
  paint = new Paint();
  paint.setStyle(Paint.Style.FILL);
  paint.setColor(Color.TRANSPARENT);
  canvas.drawPaint(paint);
  //setBackgroundResource(R.drawable.background); - To set image as background
  paint.setColor(Color.DKGRAY);
  
  Log.v("Raj","Width="+getWidth());
  Log.v("Raj","Height="+getHeight());
  //Rect r = new Rect(10,10,90,90);
  Rect r = new Rect(2,2,getWidth()-2,getHeight()-20);
  canvas.drawRect(r, paint);
  //canvas.drawRect(getPaddingLeft(), getPaddingTop(), getPaddingRight(),getPaddingBottom(), paint);
  Log.v("Raj","getPaddingLeft()="+getPaddingLeft());
  Log.v("Raj","getPaddingRight()="+getPaddingRight());
  Log.v("Raj","getPaddingTop()="+getPaddingTop());
  Log.v("Raj","getPaddingBottom()="+getPaddingBottom());
  
  paint.setTextSize(getHeight()*0.1f);
  float xpos = (getWidth()-2-paint.measureText(text))/2;
  int height=20-2;
  FontMetrics fm = paint.getFontMetrics();
  float ypos = getHeight()-20 +2 + height/2-(fm.ascent + fm.descent) / 2;
  Log.v("Dinesh","paint.measureText(text)="+paint.measureText(text));
  canvas.drawText(text,xpos,ypos,paint);
 }
 
 public void setpercent (long total,long covered){
  this.total=total;
  this.covered=covered;
 }
 
}

[ Read More ]
Read more...
Saturday, October 6, 2012

Creating Layouts TableRows and TextViews dynamically in Android through java

Posted by Raju Gupta at 1:57 PM – 0 comments
 
We have to use "new" keyword to create objects dynamically
public class DynamicViews extends Activity {
 LinearLayout L1, L2;     // Created in xml
 LinearLayout L3;        // Created dynamically in java using "new" operator
 TableLayout TL;          // Created in xml;
 TableRow tr1, tr2, tr3;    // Created dynamically in java using "new" operator
 TextView t1, t2, t3, t4;   // Created dynamically in java using "new" operator

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  <-- setContentView( int ); -->

  <-- Get L1 from xml -->
  <-- Get L2 from xml -->

  t1 = new TextView(this);
  <-- t1.setters() -->
  L2.addView(t1);

  L3 = new LinearLayout(this);
  <-- L3.setters() -->
  L3.setOrientation(LinearLayout.VERTICAL);

  <-- Get TL from xml -->
  
  tr1 = new TableRow(this);
  tr2 = new TableRow(this);

  t2 = new TextView(this);
  <-- t2.setters() -->
  tr1.addView(t2);

  
  t3 = new TextView(this);
  <-- t3.setters() -->
  L3.addView(t3);
  t4 = new TextView(this);
  <-- t4.setters() -->
  L3.addView(t4);
  tr2.addView(L3);
  TL.addView(tr1);
  TL.addView(tr2);
  TL.addView(tr3);
 }
}

[ Read More ]
Read more...

Android SeekBar

Posted by Raju Gupta at 1:54 PM – 0 comments
 
Whenever the progress bar of SeekBar is moved, it will call the inbuild method of OnProgressChange(), inside which we can write our functionality
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class SeekBarDemo extends Activity implements OnSeekBarChangeListener, OnFocusChangeListener {
 
 SeekBar seekBar;
 EditText editText;

 @Override
 public void onCreate(Bundle savedInstance) {
  super.onCreate(savedInstance);

  <-- get seekBar and editTexts from xml -->

  // Set onClick Listeners
  seekBar.setOnSeekBarChangeListener(this);
  editText.setOnFocusChangeListener(this);

  // Initial setup
  editText.setText("2000.00");
  this.onFocusChange(editText, false);
 }

 // Whenever progress of seekbar is changed, this method will be called
 @Override
 public void onProgressChange(SeekBar seekBar, int progress, boolean fromUser) {
  if(fromUser) {
   int fieldValue = progress * 1000;
   editText.setText(String.format("%d", fieldValue));
  }
 }

 // This method wil be called once mouse is pressed on progress of seekbar 
 @Override 
 public void onStartTrackingTouch(SeekBar seekBar) {
  // TODO Auto-generated method stub (This method is defined in OnSeekBarChangeListener)
 }

 // This method wil be called once mouse is released from progress of seekbar
 @Override
 public void onStopTrackingTouch(SeekBar seekBar) {
  // TODO Auto-generated method stub (This method is defined in OnSeekBarChangeListener)
 }

 // Whenever EditText field is clicked, this method will be called
 @Override
 public void onFocusChange(View v, boolean hasFocus) {
  if(!hasFocus) {
   Double fieldValue = Double.valueOf(((EditText) v).getText().toString());
   int progress = (int) (fieldValue / 1000);
   seekBar.setProgress(progress);
  }
 } 
}

[ Read More ]
Read more...

Dialing phone number from Google Android Application

Posted by Raju Gupta at 1:38 PM – 0 comments
 
Android basic framework is used to call a number from Android application.


import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class DialANumber extends Activity {
  EditText mEditText_number = null;
  LinearLayout mLinearLayout_no_button = null;
  Button mButton_dial = null;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mLinearLayout_no_button = new LinearLayout(this);

    mEditText_number = new EditText(this);
    mEditText_number.setText("9999999999");
    mLinearLayout_no_button.addView(mEditText_number);

    mButton_dial = new Button(this);
    mButton_dial.setText("Dial!");
    mLinearLayout_no_button.addView(mButton_dial);
    mButton_dial.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        performDial();
      }
    });

    setContentView(mLinearLayout_no_button);
  }

  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_CALL) {
      performDial();
      return true;
    }
    return false;
  }

  public void performDial(){
    if(mEditText_number!=null){
      try {
        startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mEditText_number.getText())));
      } catch (Exception e) {
        e.printStackTrace();
      }
    }//if
  }
}
[ Read More ]
Read more...

Login Screen Creation using Android

Posted by Raju Gupta at 1:13 PM – 0 comments
 
This code snippet creates a login screen with 2 labels (Username, Password), corresponding 2 text boxes and 2 buttons (Login, Reset) using Android. All the above resources are defined in login.xml file. The events for Login and Reset button are handled and further database authentication can be enhanced from there.
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_height="270px"
xmlns:android="http://schemas.android.com/apk/res/android"
android:fitsSystemWindows="true" android:paddingBottom="0px" android:paddingLeft="0px" android:paddingRight="0px" android:paddingTop="0px" android:persistentDrawingCache="scrolling" android:layout_width="480px">
<TextView
android:id="@+id/widget1"
android:layout_width="wrap_content"
android:layout_height="20px"
android:text="User Name"
android:textStyle="bold"
android:layout_y="43px"
android:layout_x="110px" android:textColor="#FFFFFF">
</TextView>
<TextView
android:id="@+id/widget2"
android:layout_width="wrap_content"
android:layout_height="20px"
android:text="Password"
android:textStyle="bold"
android:layout_x="110px" android:textColor="#FFFFFF" android:layout_y="87px">
</TextView>
<EditText
android:id="@+id/userName"
android:layout_width="162px"
android:layout_x="191px"
android:textSize="12px" android:layout_y="33px" android:textStyle="bold" android:nextFocusDown="@+id/password" android:numeric="integer" android:layout_height="38px">
</EditText>
<EditText
android:id="@+id/password"
android:layout_width="162px"
android:password="true"
android:layout_x="190px"
android:textSize="12px" android:layout_height="38px" android:layout_y="77px">
</EditText>
<Button
android:id="@+id/submit"
android:text="Login"
android:textStyle="bold"
android:textSize="11sp" android:layout_width="71px" android:layout_y="126px" android:layout_x="197px" android:layout_height="32px" android:ellipsize="start">
</Button>
<Button
android:id="@+id/cancel"
android:layout_width="71px"
android:text="Reset"
android:textSize="12sp"
android:textStyle="bold"
android:layout_x="277px"
android:layout_y="126px" android:layout_height="32px">
</Button>
</AbsoluteLayout>

import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Login extends Activity {
 
 //Global declaration
 Button submit;
 Button reset;
 EditText username;
 EditText password;
 String uname=null;
 String pwd=null;


 String pwd=null;
 
 /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.login);
        
        username = (EditText) this.findViewById(R.id.userName);
        password = (EditText) this.findViewById(R.id.password);
  
        submit = (Button) this.findViewById(R.id.submit);
  submit.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    authenticate();
   }
  });

  reset = (Button) this.findViewById(R.id.cancel);
  reset.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    reset();
   }
  });
    }

    // Function to perform authentication using the entered values

    private void authenticate() {
     uname = username.getText().toString();
     pwd = password.getText().toString();     

   // Can perform checks with the input given from screen using uname and pwd
 }    
   
   // Function to clear the username and password fields

 private void reset() {
  username.setText("");
  password.setText("");
 }
}

[ Read More ]
Read more...

Add a Progress Bar to Android based Mobile Screens

Posted by Raju Gupta at 1:09 PM – 0 comments
 
The code snippet displays the Progress Bar in the Mobile Screen
// Additional Text Views are added to display the progress bar in the middle of the screen
progressbar.xml

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:gravity="center" android:orientation="vertical"  
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <TextView android:layout_width="fill_parent"
   android:layout_height="wrap_content" android:text="" />
  <ProgressBar android:id="@android:id/progress"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" android:soundEffectsEnabled="true" />  
  <TextView android:layout_width="fill_parent"
   android:layout_height="wrap_content" android:text="" />
  <TextView android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:gravity="center"
   android:text="Launching Application.... " />
  
 </LinearLayout>



// Function to be written inside a Class extending Activity
     
        protected void onCreate(Bundle b) {
  super.onCreate(b);
  requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

         //  Layout for Progress Bar to be defined in progressbar.xml
  setContentView(R.layout.progressbar);

  getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS,
    Window.PROGRESS_VISIBILITY_ON);
  }
[ Read More ]
Read more...
Newer Posts Older Posts
Subscribe to: Posts (Atom)

More Technical Blogs

  • Tech Savvy - Technology Tips
  • PHP Video Tutorial
  • Java Programs with Output
  • C Programming Tutorial
  • Linux Tutorial
  • Language Tutorial
  • Web Development tutorial
  • Popular
  • Recent
  • Archives

Popular Posts

  • Android SMS Reader
    SMS Reader is an application that read all incoming SMS loudly.And it has feature of reading existing SMS using navigation keys. package...
  • Get XML from APK
    Step 1. Pass the <APK> file path+name in getIntents(...) method. Step 2. Run the attached code. This will convert all layo...
  • Dialing phone number from Google Android Application
    Android basic framework is used to call a number from Android application. import android.app.Activity; import android.content.Intent; ...
  • Android SeekBar
    Whenever the progress bar of SeekBar is moved, it will call the inbuild method of OnProgressChange(), inside which we can write our functio...
  • Android Stub uninstalling the existing client and launching another client
    This Android Application uninstall prior version of client from the device. It checks for the newer version of client on the device and l...
  • Android Video Tutorial - Understanding units and layout
    In this video you will learn about, How to create different units like button and text to run on different android devices with different ...
  • Android Video Tutorial: Android Application Development - Spicing up the UI
    This video comes from Marakana's 5-Day Android Bootcamp Training Course that Marko Gargenta taught in San Jose, CA earlier this year. ...
  • Android Video Tutorial - What is Android?
    This is the first segment from a 5 week online course, Developing Android Applications with Java. In this segment, instructor Tony Hillers...
  • How To Program for Android: Video Tutorial 6 - Drop Down Menu
    How to use the drop down menu, or spinner widget in Android. Part 1: Part 2 :
  • Android Video Tutorial - build the Simple Flashlight App
    This is the second segment from a 5 week online course, Developing Android Applications with Java. In this segment, instructor Tony Hiller...
Powered by Blogger.

Archives

  • ▼  2012 (44)
    • ▼  October (31)
      • Reordering of listview
      • Text-to-Speech capability for Android Devices
      • Android Stub uninstalling the existing client and ...
      • Tab creation in android screen
      • ListView Recordering by drag drop in Android
      • Android app for SimpleWiktionary
      • App in android for random quote generation
      • Implementing ListView-Adapter in Android
      • Extract all java classes from APK
      • Get XML from APK
      • Sending SMS from the Android Application
      • How to create Drop Down in Android
      • Android Page Navigation
      • To retrieve the cell info for Android device
      • Creating the enrty in the agenda for Android devices.
      • Test Application for Samsung Android devices
      • Color Picker from Image in Android
      • Image Switcher & Gallery in Android
      • Andorid application that listens to incoming sms
      • Accelerometer management for the Android devices
      • Alert box for Confirm
      • 3D Rotation in Android
      • Custom Bar Control for Android using Java
      • Creating Layouts TableRows and TextViews dynamical...
      • Android SeekBar
      • Dialing phone number from Google Android Application
      • Login Screen Creation using Android
      • Add a Progress Bar to Android based Mobile Screens
      • Adding a button to Android based mobile screens
      • Android Dynamically generating views
      • Timezone converter
    • ►  September (3)
    • ►  March (1)
    • ►  February (9)
  • ►  2011 (69)
    • ►  December (69)
 

Followers

Labels

  • Activities (9)
  • Andoird Menu (2)
  • Android timelineActivity. (1)
  • Android Adapter (1)
  • Android app (9)
  • Android App Inventor (1)
  • Android App Publishing (2)
  • Android Application Components (3)
  • Android Application Fundamental (2)
  • Android Architecture (1)
  • Android AsyncTask (1)
  • Android Basic (7)
  • Android Bootcamp Training (18)
  • Android Button Widget (3)
  • Android Custom Style (1)
  • Android Dialog (1)
  • Android Drawable (2)
  • Android Environment (1)
  • Android example (9)
  • Android File System (2)
  • Android Geolocation (2)
  • Android ImageView (1)
  • Android Installation (8)
  • Android intents (5)
  • Android lifecycle (1)
  • Android LIst (4)
  • Android Listener (4)
  • Android Manifest (3)
  • Android Market (1)
  • Android Notification (1)
  • Android Object (1)
  • Android Package File (1)
  • Android Platform (1)
  • Android service (4)
  • Android StatusActivity (1)
  • Android Theme Style (3)
  • Android Traceview (1)
  • Android UI (6)
  • Android Unit Testing (1)
  • Android Widget (4)
  • AndroidManifest.xml (4)
  • Application Icon (1)
  • Broadcast Receiver (2)
  • Content Providers (1)
  • Creating Activities (1)
  • Creating Custom Styles in Android (1)
  • Creating Multiple Activities (1)
  • Database (3)
  • draw9patch (1)
  • Eclipse (12)
  • Explicit Intents (2)
  • Explicit Intents Example (1)
  • Hello world with Android (1)
  • Helloworld with Android (5)
  • Implicit Intents (2)
  • Implicit Intents Example (1)
  • Layout View (3)
  • lifemichael (8)
  • Location Sensor (1)
  • Multiple Activities (2)
  • Netbeans (1)
  • OpenGL ES Graphics (1)
  • Passing Values with Intents (2)
  • Project Structure (1)
  • Retrieving Image URI from Intents (1)
  • Setting Android Environment (1)
  • SQLite (3)
  • TGENT (8)
  • UserGroupAtGoogle (8)
  • XML (1)
  • xtensive arts Training (11)
 
 
© 2011 Android Development Tutorial | Designs by Web2feel & Fab Themes

Bloggerized by DheTemplate.com - Main Blogger