Thursday, August 28, 2014

Redirect to Another Application

String APP_PACKAGE_NAME = "com.example.demo";
Intent intent;

     try {

            PackageManager pm = getPackageManager();
            intent = pm.getLaunchIntentForPackage(APP_PACKAGE_NAME);
            startActivity(intent);
                                       
     } catch (Exception e) {
            
            startActivity(new Intent(Intent.ACTION_VIEW,
                 Uri.parse("market://details?id=" + APP_PACKAGE_NAME)));


     }


Note :
  • APP_PACKAGE_NAME is the package name of 2nd  Application.
  • If 2nd application is not install then it redirect to playstore for install that application.

Thursday, August 14, 2014

Gallery View Example

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Gallery
        android:id="@+id/gallery1"
        android:layout_width="fill_parent"
        android:layout_height="150dp" />

    <ImageView
        android:id="@+id/selectedImage"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="50dp"
        android:contentDescription="@string/app_name"
        android:src="@drawable/img1" />

</LinearLayout>


MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.ImageView;

@SuppressWarnings("deprecation")
public class MainActivity extends Activity {

       private ImageView selectedImage;
       private Integer[] imageResIds = { R.drawable.img1, R.drawable.img2,
                    R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6,
                    R.drawable.img7, R.drawable.img8, R.drawable.img9 };

       @Override
       public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);

             selectedImage = (ImageView) findViewById(R.id.selectedImage);
             Gallery gallery = (Gallery) findViewById(R.id.gallery1);

             gallery.setSpacing(1);
             gallery.setAdapter(new GalleryImageAdapter(this));

             gallery.setOnItemClickListener(new OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View v,
                                 int position, long id) {

                           // show the selected Image
                           selectedImage.setImageResource(imageResIds[position]);
                    }
             });
       }
}


GalleryImageAdapter.java

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

@SuppressWarnings("deprecation")
public class GalleryImageAdapter extends BaseAdapter {

       private Context context;

       private Integer[] imageResIds = { R.drawable.img1, R.drawable.img2,
                    R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6,
                    R.drawable.img7, R.drawable.img8, R.drawable.img9 };

       public GalleryImageAdapter(Context context) {
             this.context = context;
       }

       public int getCount() {
             return imageResIds.length;
       }

       public Object getItem(int position) {
             return position;
       }

       public long getItemId(int position) {
             return position;
       }

       public View getView(int index, View view, ViewGroup viewGroup) {

             ImageView imageView = new ImageView(context);
             imageView.setImageResource(imageResIds[index]);
             imageView.setLayoutParams(new Gallery.LayoutParams(200, 200));
             imageView.setScaleType(ImageView.ScaleType.FIT_XY);

             return imageView;
       }
}


Output :






Show Activity only in Portrait or Landscape Mode

  • Show the Activity / Screen only in Landscape Mode.

                            <activity android:name=".MainActivity"
                                     android:screenOrientation="landscape"/>



  • Show the Activity / Screen only in Portrait Mode.

                            <activity android:name=".MainActivity"                                     android:screenOrientation="portrait"/>

Tuesday, August 12, 2014

Change Opacity programmatically


  • ImageView change opacity programmatically


                ImageView Img = (ImageView) findViewById(R.id.Img);
                Img.setAlpha(45);




  • Change Background opacity programmatically


                LinearLayout LLayout = (LinearLayout) findViewById(R.id.LLayout);
                   
                LLayout.setBackgroundResource(Color.RED);
                LLayout.getBackground().setAlpha(30);

EditText Validation

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/edtName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:ems="10"
        android:hint="@string/Name" />
  
    <EditText
        android:id="@+id/edtEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:ems="10"
        android:hint="@string/EmailID"
        android:inputType="textEmailAddress"
        android:maxLength="49" />

    <EditText
        android:id="@+id/edtMobile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:ems="10"
        android:hint="@string/MobileNumber"
        android:inputType="phone"
        android:maxLength="14" />

    <Button
        android:id="@+id/btnCheckValidation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/CheckValidation" />

</LinearLayout>


Validation.java

import java.util.regex.Pattern;

import android.text.TextUtils;
import android.widget.EditText;

public class Validation {

               private static final String EMAIL_MSG = "Invalid Email";
               private static final String EMAIL_REGEX = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
               private static final String REQUIRED_MSG = "This field is required";
               private static final String PHONE_REGEX = "^[0-9]{10}$";
               private static final String PHONE_MSG = "10 digit number required";

               public static boolean isEmailAddress(EditText editText, boolean required) {
                              return isValid(editText, EMAIL_REGEX, EMAIL_MSG, required);
               }

               public static boolean isPhoneNumber(EditText editText, boolean required) {
                              return isValid(editText, PHONE_REGEX, PHONE_MSG, required);
               }

               public static boolean isValid(EditText editText, String regex,
                                             String errMsg, boolean required) {

                              String text = editText.getText().toString().trim();

                              editText.setError(null);

                              if (required && !hasText(editText))
                                             return false;

                              if (required && !Pattern.matches(regex, text)) {
                                             editText.setError(errMsg);
                                             return false;
                              }
                              ;

                              return true;
               }

               public static boolean hasText(EditText editText) {

                              String text = editText.getText().toString().trim();
                              editText.setError(null);

                              if (text.length() == 0) {
                                             editText.setError(REQUIRED_MSG);
                                             return false;
                              }

                              return true;
               }

               public static boolean validateForNull(EditText p_editText, String p_nullMsg) {
                              boolean m_isValid = false;

                              try {
                                             if (p_editText != null && p_nullMsg != null) {
                                                            if (TextUtils.isEmpty(p_editText.getText().toString().trim())) {
                                                                           p_editText.setError(p_nullMsg);
                                                                           m_isValid = false;
                                                            } else {
                                                                           m_isValid = true;
                                                            }
                                             }
                              } catch (Throwable p_e) {
                                             p_e.printStackTrace();
                              }
                              return m_isValid;
               }

}


MainActivity.java
  
public class MainActivity extends Activity {

               private EditText edtName, edtEmail, edtMobile;
               private Button btnCheckValidation;

               @Override
               protected void onCreate(Bundle savedInstanceState) {
                              super.onCreate(savedInstanceState);
                              setContentView(R.layout.main);

                              edtName = (EditText) findViewById(R.id.edtName);
                              edtEmail = (EditText) findViewById(R.id.edtEmail);
                              edtMobile = (EditText) findViewById(R.id.edtMobile);

                              btnCheckValidation = (Button) findViewById(R.id.btnCheckValidation);
                              btnCheckValidation.setOnClickListener(new OnClickListener() {

                                             @Override
                                             public void onClick(View v) {
                                                            if (checkNullValidation()) {
                                                                           if (checkValidation()) {
                                                                                          Toast.makeText(getApplicationContext(), "True",
                                                                                                                        Toast.LENGTH_SHORT).show();
                                                                           }
                                                            }
                                             }
                              });

               }

               private boolean checkNullValidation() {
                              boolean isValid = true;
                              if (!Validation.validateForNull(edtName, "Name is required")) {
                                             isValid = false;
                              }
                              if (!Validation.validateForNull(edtEmail, "Email Id is required")) {
                                             isValid = false;
                              }
                              if (!Validation.validateForNull(edtMobile, "Mobile No. is required")) {
                                             isValid = false;
                              }

                              return isValid;
               }

               private boolean checkValidation() {
                              boolean isValid = true;

                              if (!Validation.isEmailAddress(edtEmail, true))
                                             isValid = false;
                              if (!Validation.isPhoneNumber(edtMobile, true))
                                             isValid = false;

                              return isValid;
               }
}