Today i'll show, how to make the diffence in your profissional apps by designing real cool, awesome activities. In this sample i'm gonna share how we can create an activity that looks like a dialog with some partial transparent parts, which allows me to see the background of the launcher main activity.
Here is the sketch to visualize the idea behind the text:
Create a sample project
Create an Android Project and define your main activity as ExampleActivity. After that, create a second activity called PhotoPickerActivity. Don´t worry about the details. We will see it a few steps ahead. Just create it and leave it empty. Define in the layout of ExampleActivity only a single button, add an OnClickListener to it and as soon as the button is pressed, call an action like that:Intent intent = new Intent(getContext(), PhotoPickerActivity.class); getActivity().startActivityForResult(intent, PhotoPickerActivity.REQUEST_CODE_OPEN_GALLERY);
Activity dialog style.
Create a style.xml in the folder: res>values like that:Layout of PhotoPickerActivity
Create a layout called for example: activity_photo_picker.xml in folder: res>layout like that:Manifest Entry
In your manifest, make sure you've added the following code snippet to it(Make sure the package name matches your own definition. In my case it is called com.treslines.ExampleActivity):Content of PhotoPickerActivity
Copy/paste the next code section into PhotoPickerActivity.public class PhotoPickerActivity extends Activity implements OnClickListener { public static final String ACTION_NAVIGATE_BACK = "ACTION_NAVIGATE_BACK"; public static final String ACTION_PHOTO_SHOT = "ACTION_PHOTO_SHOT"; public static final String ACTION_PHOTO_TAKEN = "ACTION_PHOTO_TAKEN"; public static final int REQUEST_CODE_OPEN_GALLERY = 20; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_photo_picker); findViewById(R.id.close_view).setOnClickListener(this); findViewById(R.id.camera_view).setOnClickListener(this); inflatePhotoViewsToShow(); } private void inflatePhotoViewsToShow() { // 1. Load photos from a service // 2. inflate photos in views here... // 3. add listener this click listener to each one // 4. add real data to the switch cases } @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.close_view: Intent navigateBack = new Intent(this, ExampleActivity.class); navigateBack.setAction(ACTION_NAVIGATE_BACK); navigateBack.setData(Uri.EMPTY); setResult(Activity.RESULT_OK, navigateBack); finish(); break; case R.id.camera_view: Intent photoShot = new Intent(); photoShot.setAction(ACTION_PHOTO_SHOT); photoShot.setData(Uri.EMPTY); // set real data here... setResult(Activity.RESULT_OK, photoShot); finish(); break; // photo has been taken (selected) default: Intent photoTaken = new Intent(); photoTaken.setAction(ACTION_PHOTO_TAKEN); photoTaken.setData(Uri.EMPTY); // set real data here... setResult(Activity.RESULT_OK, photoTaken); finish(); break; } } }
OnActivityResult from ExampleActivity
In the method onActivityResult from your main class ExampleActivity, make sure you've added the content bellow:@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { if (requestCode == PhotoPickerActivity.REQUEST_CODE_OPEN_GALLERY) { if(!PhotoPickerActivity.ACTION_NAVIGATE_BACK.equals(data.getAction())){ if(PhotoPickerActivity.ACTION_PHOTO_SHOT.equals(data.getAction())){ Toast.makeText(this, "photo shot over camera", Toast.LENGTH_SHORT).show(); }else if(PhotoPickerActivity.ACTION_PHOTO_TAKEN.equals(data.getAction())){ Toast.makeText(this, "photo selected over photo picker", Toast.LENGTH_SHORT).show(); } } } } }
That's all i hope you like it.
😱👇 PROMOTIONAL DISCOUNT: BOOKS AND IPODS PRO 😱👇
Be sure to read, it will change your life!
Show your work by Austin Kleon: https://amzn.to/34NVmwx
This book is a must read - it will put you in another level! (Expert)
Agile Software Development, Principles, Patterns, and Practices: https://amzn.to/30WQSm2
Write cleaner code and stand out!
Clean Code - A Handbook of Agile Software Craftsmanship: https://amzn.to/33RvaSv
This book is very practical, straightforward and to the point! Worth every penny!
Kotlin for Android App Development (Developer's Library): https://amzn.to/33VZ6gp
Needless to say, these are top right?
Apple AirPods Pro: https://amzn.to/2GOICxy
😱👆 PROMOTIONAL DISCOUNT: BOOKS AND IPODS PRO 😱👆