activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context=".MainActivity" > <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/animals" android:layout_centerInParent="true" /> <TextView android:id="@+id/tv_rate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Rate This App!" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:textSize="10dp" /> <ImageButton android:id="@+id/ib" android:layout_width="85dp" android:layout_height="24dp" android:scaleType="fitCenter" android:foregroundGravity="right" android:src="@drawable/stars" android:layout_alignParentRight="true" android:background="@android:color/transparent" android:layout_below="@+id/tv_rate" /> </RelativeLayout>
MainActivity.java
package com.cfsuman.me.androidcode; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; import android.widget.RelativeLayout; public class MainActivity extends AppCompatActivity { private Context mContext; private String mMarketUri = "market://details?id="; private String mPlayStoreRootUrl = "http://play.google.com/store/apps/details?id="; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the application context mContext = getApplicationContext(); // Get the widgets reference from XML layout RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl); ImageButton ib = (ImageButton) findViewById(R.id.ib); // Set an click listener for ImageButton ib.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Call the custom method to go google play store app page rateThisApp(); } }); } // Custom method to request app rating public void rateThisApp(){ /* public abstract String getPackageName () Return the name of this application's package. */ Uri uri = Uri.parse(mMarketUri + mContext.getPackageName()); /* Intent An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service. */ /* public static simpulan String ACTION_VIEW Activity Action: Display the data to the user. This is the most common action performed on data -- it is the generic action you can use on a piece of data to get the most reasonable thing to occur. For example, when used on a contacts entry it will view the entry; when used on a mailto: URI it will bring up a compose window filled with the information supplied by the URI; when used with a tel: URI it will invoke the dialer. Input: getData() is URI from which to retrieve data. Output: nothing. Constant Value: "android.intent.action.VIEW" */ Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); /* public Intent addFlags (int flags) Add additional flags to the intent (or with existing flags value). Parameters flags : The new flags to set. Returns Returns the same Intent object, for chaining multiple calls into a single statement. */ /* public static simpulan int FLAG_ACTIVITY_NO_HISTORY If set, the new activity is not kept in the history stack. As soon as the user navigates away from it, the activity is finished. This may also be set with the noHistory attribute. If set, onActivityResult() is never invoked when the current activity starts a new activity which sets a result and finishes. public static simpulan int FLAG_ACTIVITY_NEW_DOCUMENT This flag is used to open a document into a new task rooted at the activity launched by this Intent. Through the use of this flag, or its equivalent attribute, documentLaunchMode multiple instances of the same activity containing different documents will appear in the recent tasks list. public static simpulan int FLAG_ACTIVITY_MULTIPLE_TASK This flag is used to create a new task and launch an activity into it. This flag is always paired with either FLAG_ACTIVITY_NEW_DOCUMENT or FLAG_ACTIVITY_NEW_TASK. In both cases these flags alone would search through existing tasks for ones matching this Intent. Only if no such task is found would a new task be created. */ goToMarket.addFlags( Intent.FLAG_ACTIVITY_NO_HISTORY | // For old API version //Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK ); try { /* public abstract void startActivity (Intent intent) Same as startActivity(Intent, Bundle) with no options specified. public abstract void startActivity (Intent intent, Bundle options) Launch a new activity. You will not receive any information about when the activity exits. Note that if this method is being called from outside of an Activity Context, then the Intent must include the FLAG_ACTIVITY_NEW_TASK launch flag. This is because, without being started from an existing Activity, there is no existing task in which to place the new activity and thus it needs to be placed in its own separate task. This method throws ActivityNotFoundException if there was no Activity found to run the given Intent. */ startActivity(goToMarket); } /* ActivityNotFoundException This exception is thrown when a call to startActivity(Intent) or one of its variants fails because an Activity can not be found to execute the given Intent. */ catch (ActivityNotFoundException e) { startActivity(new Intent(Intent.ACTION_VIEW, // Use another app package name for testing purpose only //Uri.parse(mPlayStoreRootUrl + "com.cfsuman.me.kidsabc"))); /* Uri Immutable URI reference. A URI reference includes a URI and a fragment, the component of the URI following a '#'. Builds and parses URI references which conform to RFC 2396. public static Uri parse (String uriString) Creates a Uri which parses the given encoded URI string. Parameters uriString : an RFC 2396-compliant, encoded URI Returns Uri : for this given uri string Throws NullPointerException : if uriString is null */ Uri.parse(mPlayStoreRootUrl + mContext.getPackageName()))); } } }


- How to do a task after a delay
- How to repeat a task periodically
- How to make a Live Wallpaper
- EmbossMaskFilter example
- How to apply deboss text effect
- How to use BitmapShader
- How to create layout tiled background
- How to create LayerDrawable programmatically
- How to create rounded corners ImageView
- How to draw border and shadow around a bitmap
Komentar
Posting Komentar