Sunday, February 18, 2018

APP Localization

APP Localization is used to provide the user interference in local languages to user for better understanding. you can see it in this tutorial.





Steps to use APPLocalization in your project.


  1. Crate a project(APPLocalizationDemo) in android studio.

  2. Create a Activity MainActivity.Java and update it-

    package com.pankaj.applocalizationdemo;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //no need to do anything other for localization application
            //will use default device language
        }
    }

  3. Create a xml activity_main.xml and update it-

    <?xml version="1.0" encoding="utf-8"?>
    <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:gravity="center"
        android:orientation="vertical"
        tools:context="com.pankaj.applocalizationdemo.MainActivity">
        <!--create four object to show in different language-->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="@string/app_name" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="@string/app_pankaj" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="@string/app_gurjar" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="@string/app_developer" />
    </LinearLayout>
    
    
    
     
  4. Create a resource strings.xml in values of res and update it-

    <resources>
        <string name="app_name">App Localization Demo</string>
        <string name="app_pankaj">Pankaj</string>
        <string name="app_gurjar">Gurjar</string>
        <string name="app_developer">Android Developer</string>
    </resources>
    
    
    
     
  5. Create a folder values-ar in res.
  6. Create strings-ar.xml in this folder for Arabic language and update it-

    <resources>
        <string name="app_name">التطبيق التعريب التجريبي</string>
        <string name="app_pankaj">بانكاج</string>
        <string name="app_gurjar">غورجار</string>
        <string name="app_developer">الروبوت المطور</string>
    </resources>
    
        


  7. Create a folder values-hi in res.
  8. Create strings-hi.xml in this folder for Hindi language and update it-

    <resources>
        <string name="app_name">ऐप लोकलाइजेशन डेमो</string>
        <string name="app_pankaj">पंकज</string>
        <string name="app_gurjar">गुर्जर</string>
        <string name="app_developer">एंड्रॉइड डेवलपर</string>
    </resources>
    
     
  9. All the application development process with App Localization has completed, Now run the app and look the screen.
    Note : please set your device language to english


  10. Now please set your device language to Hindi  and open application.
  11. Now please set your device language to Arabic  and open application.





  12. Good bye, Thanks to read this blog.

Bar Code & QR Code Scanner

Bar Code & QR Code Scanner is used to scan BAR & QR code scanning. you can see it in this tutorial.





Steps to use Bar Code & QR Code Scanner in your project.

  1. Crate a project(Bar Code & QR Code Scanner Demo) in android studio.

  2. Create a Activity build.gradle and add a dependency to it- 

    // add dependency to use QR code scanning
    compile 'com.journeyapps:zxing-android-embedded:3.4.0'
    
    
    
    

  3. Now your build.gradle will be like-
    apply plugin: 'com.android.application'
    android {
        compileSdkVersion 26
        defaultConfig {
            applicationId "com.pankaj.barcodedemo"
            minSdkVersion 15
            targetSdkVersion 26
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:26.1.0'
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        implementation 'com.android.support:design:26.1.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
        // add dependency to use QR code scanning
        compile 'com.journeyapps:zxing-android-embedded:3.4.0'
    }
     
  4. Create a activity MainActivity.Java and update it-

    package com.pankaj.barcodedemo;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.widget.TextView;
    import android.widget.Toast;
    import com.google.zxing.integration.android.IntentIntegrator;
    import com.google.zxing.integration.android.IntentResult;
    
    public class MainActivity extends AppCompatActivity {
        private IntentIntegrator qrScan;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    //      initialize
            qrScan = new IntentIntegrator(this);
    
            //Specify scanning type like QR/Barcode. Default its scan both type.
    //      qrScan.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
            //Add message to show when scannig
            qrScan.setPrompt("Scan a Barcode/QR Code");
    
            // Use a specific camera of the device
            qrScan.setCameraId(0);
    
            //enable beep on scan complete
            qrScan.setBeepEnabled(true);
            qrScan.setBarcodeImageEnabled(true);
            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //open scanner
                    qrScan.initiateScan();
                }
            });
        }
    
        //Getting the scan results
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
            if (result != null) {
    
                //if qrcode has nothing in it
                if (result.getContents() == null) {
                    Toast.makeText(this, "Result Not Found", Toast.LENGTH_LONG).show();
                } else {
                    try {
    
                        //if qr contains data
                        ((TextView) findViewById(R.id.tvScanData)).setText(result.getContents());
                        Log.e("scan result", result.getContents());
                    } catch (Exception e) {
                    }
                }
            } else {
                super.onActivityResult(requestCode, resultCode, data);
            }
        }
    }
    
     
  5. Create a xml activity_main.xml and update it-

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.pankaj.barcodedemo.MainActivity">
    
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay" />
        </android.support.design.widget.AppBarLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            tools:showIn="@layout/activity_main">
            <TextView
                android:id="@+id/tvScanData"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="web"
                android:text="Scan result will show here." />
        </LinearLayout>
    
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="@dimen/fab_margin"
            app:srcCompat="@android:drawable/ic_menu_camera" />
    
    </android.support.design.widget.CoordinatorLayout>
    
    
     
  6. If you want to open it in only in one mode like landscape or portrait then add below code to manifest

    <activity
        android:name="com.journeyapps.barcodescanner.CaptureActivity"
        android:screenOrientation="portrait"
        tools:replace="screenOrientation" />
     


  7. All the application development process with Bar Code & QR Code Scanner has completed, Now run the app and look the screen.
     
  8. Now click on camera button to open scanner.



     

  9. Now scan the QR or BAR code and see the result.








  10. Good bye, Thanks to read this blog.