android select image from gallery intent
Wednesday, 12 June 2013
Tuesday, 11 June 2013
getX and getY different screen android
package com.example.animateframe;
import com.example.animateframe.model.girl;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
ImageView img;
Button btnStart, btnStop;
AnimationDrawable animation;
MediaPlayer mMediaPlayerHEAD;
SeekBar seekbarS, seekbar;
static int heart = 0;
static int level = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Remove title bar
// this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// Remove notification bar
// this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main_frame);
// startService(new Intent(getBaseContext(), MusicService.class));
mMediaPlayerHEAD = MediaPlayer
.create(getApplicationContext(), R.raw.s1);
img = (ImageView) findViewById(R.id.imageView1);
seekbarS = (SeekBar) findViewById(R.id.seekbarS);
seekbar = (SeekBar) findViewById(R.id.seekbar);
// img.setBackgroundDrawable(animation);
// img.setBackgroundResource(resid)
// img.setImageBitmap(null);
/*
* btnStart = (Button)findViewById(R.id.btnStart); //btnStop =
* (Button)findViewById(R.id.btnStop);
*
* btnStart.setOnClickListener(new View.OnClickListener() {
*
* @Override public void onClick(View v) { // TODO Auto-generated method
* stub img.setImageBitmap(null); animation.start(); } });
*
* btnStop.setOnClickListener(new View.OnClickListener() {
*
* @Override public void onClick(View v) { // TODO Auto-generated method
* stub animation.stop(); } });
*/
img.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// if (level == 2) return false;
int defaultScreenWidth = 480;
int defaultScreenHeight = 800;
//int defaultScreenWidth = 240;
//int defaultScreenHeight = 320;
// TODO Auto-generated method stub
int[] viewCoords = new int[2];
img.getLocationOnScreen(viewCoords);
int touchX = (int) event.getX();
int touchY = (int) event.getY();
int imageX = touchX - viewCoords[0]; // viewCoords[0] is the X coordinate
int imageY = touchY - viewCoords[1]; // viewCoords[1] is the y coordinate
//Toast.makeText(getBaseContext(),"left = " + img.getLeft() + " top = " + img.getTop() + "bottom = " + img.getBottom() + " right = " + img.getRight() + touchX + " " + touchY + " imageX =" + imageX, Toast.LENGTH_SHORT).show();
double scaleX = (img.getRight() / defaultScreenWidth) ;
double scaleY = (img.getBottom() / defaultScreenHeight);
if (img.getRight() >= defaultScreenWidth )
{
// man hinh lon hon
scaleX = (img.getRight() / defaultScreenWidth) ;
scaleY = (img.getBottom() / defaultScreenHeight);
// touchX = (int) (scaleX * touchX);
// touchY = (int) (scaleY * touchY);
}else
{
// man hinh nho hon
scaleX = (defaultScreenWidth / img.getRight()) ;
scaleY = (defaultScreenHeight / img.getBottom() );
// touchX = (int) (scaleX * touchX);
// touchY = (int) (scaleY * touchY);
}
scaleX = ( (double) img.getRight() / (double) defaultScreenWidth) ;
//Toast.makeText(getBaseContext(), ""+ img.getRight() + "/" + defaultScreenWidth + "=" + scaleX + "* x=" + touchX + " Y =" + touchY , Toast.LENGTH_SHORT).show();
scaleY = ( (double)img.getBottom() / (double)defaultScreenHeight);
int touchX2 = (800 / defaultScreenWidth ) * touchX;
int touchY2 = (1280 / defaultScreenHeight ) * touchY;
//Toast.makeText(getBaseContext(), ""+ (135 * scaleX) + "*" + scaleX + "* x=" + touchX + " Y =" + touchY , Toast.LENGTH_SHORT).show();
// Toast.makeText(getBaseContext()," x=" + touchX + " Y =" + touchY , Toast.LENGTH_SHORT).show();
if ((touchX >=(135 * scaleX)) && (touchX < (320* scaleX)) && (touchY >=150* scaleY) && (touchY < 280* scaleY)) // 480 x 800
// if ((touchX >= ( 100 * scaleX )) && (touchX < 200 * scaleX) && (touchY >=80 * scaleY) && (touchY < 280 * scaleY))
{
if (animation.isRunning()) {
animation.stop();
}
if (level == 1)
{
img.setBackgroundResource(R.drawable.head);
}else
{
img.setBackgroundResource(R.drawable.gc_next);
}
animation = (AnimationDrawable) img.getBackground();
animation.start();
if (level == 1){
if (SoundOn()) mMediaPlayerHEAD.start();
checkIfAnimationDone(animation,girl.STANDING);
}
else
{
if (SoundOn()){
MediaPlayer mMediaPlayerBUST = MediaPlayer
.create(getApplicationContext(), R.raw.s8);
mMediaPlayerBUST.start();
}
checkIfAnimationDone(animation,girl.GA_NEXT);
}
}
// bust
if ((touchX >=150 * scaleX) && (touchX < 370 * scaleX) && (touchY >=390 * scaleY) && (touchY < 500 * scaleY))
{
if (animation.isRunning()) {
animation.stop();
}
if (level == 1)
img.setBackgroundResource(R.drawable.bustup);
else
img.setBackgroundResource(R.drawable.ge_next);
animation = (AnimationDrawable) img.getBackground();
animation.start();
if (SoundOn())
{
if (level == 1)
{
MediaPlayer mMediaPlayerBUST = MediaPlayer
.create(getApplicationContext(), R.raw.s4);
mMediaPlayerBUST.start();
}else
{
MediaPlayer mMediaPlayerBUST = MediaPlayer
.create(getApplicationContext(), R.raw.s6);
mMediaPlayerBUST.start();
}
}
heart += 10;
seekbar.setProgress(heart);
// Toast.makeText(getBaseContext()," heart= " + heart + " level " + level, Toast.LENGTH_SHORT).show();
// checkIfAnimationDone(animation,girl.GA_NEXT);
// level++;
if (heart <= 100)
{
checkIfAnimationDone(animation,girl.STANDING);
}
else
{
// Toast.makeText(getBaseContext()," heart=" + heart, Toast.LENGTH_SHORT).show();
if (level != 2 ) level = 2;
checkIfAnimationDone(animation,girl.GA_NEXT);
seekbar.setProgress(0);
}
}
return false;
}
});
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
img.setImageBitmap(null);
animation = standing();
animation.start();
}
@Override
public void onPause() {
super.onPause(); // Always call the superclass method first
if (SoundOn())
stopService(new Intent(getBaseContext(), MusicService.class));
// mMediaPlayerHEAD.stop();
}
@Override
public void onResume() {
super.onPause(); // Always call the superclass method first
if (SoundOn())
startService(new Intent(getBaseContext(), MusicService.class));
}
private void checkIfAnimationDone(AnimationDrawable anim, final int doing) {
final AnimationDrawable a = anim;
int timeBetweenChecks = 300;
Handler h = new Handler();
h.postDelayed(new Runnable() {
public void run() {
if (a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1)) {
checkIfAnimationDone(a, doing);
} else {
// Toast.makeText(getApplicationContext(),
// "ANIMATION DONE!", Toast.LENGTH_SHORT).show();
animation.stop();
if (doing == girl.STANDING)
animation = standing();
if (doing == girl.GA_NEXT)
animation = ga_next();
animation.start();
}
}
}, timeBetweenChecks);
};
protected AnimationDrawable ga_next() {
img.setBackgroundResource(R.drawable.ga_next);
// Get the background, which has been compiled to an AnimationDrawable
// object.
AnimationDrawable frameAnimation = (AnimationDrawable) img
.getBackground();
return frameAnimation;
}
protected AnimationDrawable nguc() {
img.setBackgroundResource(R.drawable.bustup);
// Get the background, which has been compiled to an AnimationDrawable
// object.
AnimationDrawable frameAnimation = (AnimationDrawable) img
.getBackground();
return frameAnimation;
}
protected AnimationDrawable head() {
img.setBackgroundResource(R.drawable.head);
// Get the background, which has been compiled to an AnimationDrawable
// object.
AnimationDrawable frameAnimation = (AnimationDrawable) img
.getBackground();
return frameAnimation;
}
protected AnimationDrawable standing() {
img.setBackgroundResource(R.drawable.standing);
// Get the background, which has been compiled to an AnimationDrawable
// object.
AnimationDrawable frameAnimation = (AnimationDrawable) img
.getBackground();
return frameAnimation;
// Start the animation (looped playback by default).
// frameAnimation.start();
/*
*
* int duration = 150; BitmapDrawable frame1 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a001);
* BitmapDrawable frame2 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a002);
* BitmapDrawable frame3 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a003);
* BitmapDrawable frame4 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a004);
* BitmapDrawable frame5 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a005);
* BitmapDrawable frame6 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a006);
* BitmapDrawable frame7 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a007);
* BitmapDrawable frame8 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a008);
* BitmapDrawable frame9 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a009);
* BitmapDrawable frame10 =
* (BitmapDrawable)getResources().getDrawable(R.drawable.a010);
*
* AnimationDrawable animation2 = new AnimationDrawable();
*
* animation2.addFrame(frame1, duration); animation2.addFrame(frame2,
* duration); animation2.addFrame(frame3, duration);
* animation2.addFrame(frame4, duration); animation2.addFrame(frame5,
* duration); animation2.addFrame(frame6, duration);
* animation2.addFrame(frame7, duration); animation2.addFrame(frame8,
* duration); animation2.addFrame(frame9, duration);
* animation2.addFrame(frame10, duration);
*
* animation2.setOneShot(false); return animation2;
*/
}
private boolean SoundOn()
{
return false;
}
}
Monday, 10 June 2013
upload and crop from camera android
package com.example.imagegalleryupload;
import java.io.ByteArrayOutputStream;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
final static int REQUEST_CODE = 0;
//keep track of camera capture intent
final int CAMERA_CAPTURE = 3;
private String selectedImagePath;
String mUploadMessage = "";
ImageView img ;
private Uri imageUri;
Uri selectedImageUri;
//keep track of cropping intent
final int PIC_CROP = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView) findViewById(R.id.imageView1);
}
public void btn_Upload_onClick(View view) {
// Intent chon hinh tu gallery.
Intent imageGalleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
imageGalleryIntent.addCategory(Intent.CATEGORY_OPENABLE);
imageGalleryIntent.setType("image/*");
// Intent chup hinh tu camera
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Intent chooserIntent = Intent.createChooser(imageGalleryIntent, "Image Chooser");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable[] { captureIntent });
/*
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),
REQUEST_CODE);
*/
startActivityForResult(chooserIntent, REQUEST_CODE);
}
public String getRealPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/*
if (requestCode == REQUEST_CODE) {
if (null == this.mUploadMessage) {
return;
}
Uri result;
if (resultCode != RESULT_OK) {
result = null;
} else {
result = data == null ? this.imageUri : data.getData(); // retrieve from the private variable if the intent is null
}
this.mUploadMessage = result.getPath();
img.setImageURI(result);
this.mUploadMessage = null;
Toast.makeText(this, mUploadMessage, Toast.LENGTH_LONG)
.show();
}
*/
Toast toast = Toast.makeText(this, "" + requestCode + " * " + resultCode, Toast.LENGTH_LONG);
toast.show();
try {
switch (requestCode) {
case REQUEST_CODE:
selectedImageUri = data.getData();
// from camera
if ( data.getAction() != null)
{
final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");
if ( c1.moveToFirst() ) {
String uristringpic = "content://media/external/images/media/" + c1.getInt(0);
Uri newuri = Uri.parse(uristringpic);
selectedImageUri = newuri;
}
performCrop();
return;
}
if (resultCode == Activity.RESULT_OK) {
selectedImageUri = data.getData();
// data gives you the image uri. Try to convert that to
// bitmap
//selectedImageUri = data.getData();
selectedImagePath = getRealPath(selectedImageUri);
img.setImageURI(selectedImageUri);
break;
} else if (resultCode == Activity.RESULT_CANCELED) {
// Log.e(TAG, "Selecting picture cancelled");
}
/*
if (android.os.Build.VERSION.SDK_INT < 13 )
{
// case: android 2.3 va chup hinh tu camera
// ghi chu: trong android 2.3 , chup hinh tu camera thi data.getData() == null,
// test tren Samsung galaxy Y s5360
if (selectedImageUri == null)
{
final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");
if ( c1.moveToFirst() ) {
String uristringpic = "content://media/external/images/media/" + c1.getInt(0);
Uri newuri = Uri.parse(uristringpic);
selectedImageUri = newuri;
// Log.i("TAG", "newuri "+newuri);
img.setImageURI(newuri);
performCrop();
return;
}
}
}
if (resultCode == Activity.RESULT_OK) {
selectedImageUri = data.getData();
// data gives you the image uri. Try to convert that to
// bitmap
//selectedImageUri = data.getData();
selectedImagePath = getRealPath(selectedImageUri);
img.setImageURI(selectedImageUri);
break;
} else if (resultCode == Activity.RESULT_CANCELED) {
// Log.e(TAG, "Selecting picture cancelled");
}
*/
break;
case PIC_CROP:
if (resultCode == Activity.RESULT_OK) {
//get the returned data
Bundle extras = data.getExtras();
//get the cropped bitmap
Bitmap thePic = extras.getParcelable("data");
//display the returned cropped image
Uri cropImage = getImageUri(getBaseContext(), thePic);
selectedImagePath = getRealPath(cropImage);
Toast.makeText(this, "" + selectedImagePath + " * " + resultCode, Toast.LENGTH_LONG).show();
img.setImageBitmap(thePic);
} else if (resultCode == Activity.RESULT_CANCELED) {
// Log.e(TAG, "Selecting picture cancelled");
}
break;
}
} catch (Exception e) {
Log.e("error 1", "Exception in onActivityResult : " + e.getMessage());
}
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
private void performCrop(){
try {
//call the standard crop action intent (the user device may not support it)
Intent cropIntent = new Intent("com.android.camera.action.CROP");
//indicate image type and Uri
cropIntent.setDataAndType(selectedImageUri, "image/*");
//set crop properties
cropIntent.putExtra("crop", "true");
//indicate aspect of desired crop
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
//indicate output X and Y
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
//retrieve data on return
cropIntent.putExtra("return-data", true);
//start the activity - we handle returning in onActivityResult
startActivityForResult(cropIntent, PIC_CROP);
}
catch(ActivityNotFoundException anfe){
//display an error message
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
}
Sunday, 9 June 2013
upload image from camera + gallery android
package com.example.imagegalleryupload;
import java.io.ByteArrayOutputStream;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
final static int REQUEST_CODE = 0;
//keep track of camera capture intent
final int CAMERA_CAPTURE = 3;
private String selectedImagePath;
String mUploadMessage = "";
ImageView img ;
private Uri imageUri;
Uri selectedImageUri;
//keep track of cropping intent
final int PIC_CROP = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView) findViewById(R.id.imageView1);
}
public void btn_Upload_onClick(View view) {
// Intent chon hinh tu gallery.
Intent imageGalleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
imageGalleryIntent.addCategory(Intent.CATEGORY_OPENABLE);
imageGalleryIntent.setType("image/*");
// Intent chup hinh tu camera
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Intent chooserIntent = Intent.createChooser(imageGalleryIntent, "Image Chooser");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable[] { captureIntent });
/*
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),
REQUEST_CODE);
*/
startActivityForResult(chooserIntent, REQUEST_CODE);
}
public String getRealPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/*
if (requestCode == REQUEST_CODE) {
if (null == this.mUploadMessage) {
return;
}
Uri result;
if (resultCode != RESULT_OK) {
result = null;
} else {
result = data == null ? this.imageUri : data.getData(); // retrieve from the private variable if the intent is null
}
this.mUploadMessage = result.getPath();
img.setImageURI(result);
this.mUploadMessage = null;
Toast.makeText(this, mUploadMessage, Toast.LENGTH_LONG)
.show();
}
*/
Toast toast = Toast.makeText(this, "" + requestCode + " * " + resultCode, Toast.LENGTH_LONG);
toast.show();
try {
switch (requestCode) {
case REQUEST_CODE:
if (android.os.Build.VERSION.SDK_INT < 13 )
{
selectedImageUri = data.getData();
// case: android 2.3 va chup hinh tu camera
if (selectedImageUri == null)
{
final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");
if ( c1.moveToFirst() ) {
String uristringpic = "content://media/external/images/media/" +c1.getInt(0);
Uri newuri = Uri.parse(uristringpic);
selectedImageUri = newuri;
Log.i("TAG", "newuri "+newuri);
img.setImageURI(newuri);
performCrop();
return;
}
}
}
if (resultCode == Activity.RESULT_OK) {
//user is returning from capturing an image using the camera
if(requestCode == CAMERA_CAPTURE){
//get the Uri for the captured image
selectedImageUri = data.getData();
//carry out the crop operation
performCrop();
}
//user is returning from cropping the image
else if(requestCode == PIC_CROP){
//get the returned data
Bundle extras = data.getExtras();
//get the cropped bitmap
Bitmap thePic = extras.getParcelable("data");
//display the returned cropped image
img.setImageBitmap(thePic);
return;
}
// data gives you the image uri. Try to convert that to
// bitmap
//selectedImageUri = data.getData();
selectedImagePath = getRealPath(selectedImageUri);
img.setImageURI(selectedImageUri);
break;
} else if (resultCode == Activity.RESULT_CANCELED) {
// Log.e(TAG, "Selecting picture cancelled");
}
break;
case PIC_CROP:
if (resultCode == Activity.RESULT_OK) {
//get the returned data
Bundle extras = data.getExtras();
//get the cropped bitmap
Bitmap thePic = extras.getParcelable("data");
//display the returned cropped image
Uri cropImage = getImageUri(getBaseContext(), thePic);
selectedImagePath = getRealPath(cropImage);
Toast.makeText(this, "" + selectedImagePath + " * " + resultCode, Toast.LENGTH_LONG).show();
img.setImageBitmap(thePic);
} else if (resultCode == Activity.RESULT_CANCELED) {
// Log.e(TAG, "Selecting picture cancelled");
}
break;
}
} catch (Exception e) {
Log.e("error 1", "Exception in onActivityResult : " + e.getMessage());
}
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
private void performCrop(){
try {
//call the standard crop action intent (the user device may not support it)
Intent cropIntent = new Intent("com.android.camera.action.CROP");
//indicate image type and Uri
cropIntent.setDataAndType(selectedImageUri, "image/*");
//set crop properties
cropIntent.putExtra("crop", "true");
//indicate aspect of desired crop
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
//indicate output X and Y
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
//retrieve data on return
cropIntent.putExtra("return-data", true);
//start the activity - we handle returning in onActivityResult
startActivityForResult(cropIntent, PIC_CROP);
}
catch(ActivityNotFoundException anfe){
//display an error message
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
}
Thursday, 6 June 2013
android AnimationDrawable stop
android AnimationDrawable stop
private void checkIfAnimationDone(AnimationDrawable anim){
final AnimationDrawable a = anim;
int timeBetweenChecks = 300;
Handler h = new Handler();
h.postDelayed(new Runnable(){
public void run(){
if (a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1)){
checkIfAnimationDone(a);
} else{
Toast.makeText(getApplicationContext(), "ANIMATION DONE!", Toast.LENGTH_SHORT).show();
}
}
}, timeBetweenChecks);
};
private void checkIfAnimationDone(AnimationDrawable anim){
final AnimationDrawable a = anim;
int timeBetweenChecks = 300;
Handler h = new Handler();
h.postDelayed(new Runnable(){
public void run(){
if (a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1)){
checkIfAnimationDone(a);
} else{
Toast.makeText(getApplicationContext(), "ANIMATION DONE!", Toast.LENGTH_SHORT).show();
}
}
}, timeBetweenChecks);
};
remove action bar android
//remove action bar android
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main_frame);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main_frame);
android animation fragment transition
android animation fragment transition
http://adblogcat.com/fragment-transition-animations-while-hiding-the-previous-fragment/
http://adblogcat.com/fragment-transition-animations-while-hiding-the-previous-fragment/
Wednesday, 5 June 2013
INSTALL_FAILED_INSUFFICIENT_STORAGE
INSTALL_FAILED_INSUFFICIENT_STORAGE and one more attribute of <manifest> tag
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.musicbackground"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal"
>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.musicbackground"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal"
>
Tuesday, 4 June 2013
Monday, 3 June 2013
android version on market
android version on market. Data collected during a 14-day period ending on May 1, 2013.
Any versions with less than 0.1% distribution are not shown.
Any versions with less than 0.1% distribution are not shown.
Sunday, 2 June 2013
android soft keyboard move up
android soft keyboard move up: when soft keyboard show, it move up the layout
Use
Use
android:windowSoftInputMode="adjustPan"
can i get google tasks on android
Use web, use: this link https://mail.google.com/tasks/android .
For coder, user google tasks API at:
https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android
https://developers.google.com/google-apps/tasks/
Some apps on google plays
https://play.google.com/store/apps/details?id=ch.teamtasks.tasks&hl=vi
https://play.google.com/store/apps/details?id=org.dayup.gtask
For coder, user google tasks API at:
https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android
https://developers.google.com/google-apps/tasks/
Some apps on google plays
https://play.google.com/store/apps/details?id=ch.teamtasks.tasks&hl=vi
https://play.google.com/store/apps/details?id=org.dayup.gtask
Subscribe to:
Comments (Atom)


