I needed a widget that can load a url in WebView in a full-screen closable overlay/modal. I wanted to re-use this new, shiny widget in my other projects as well. So, I decided to upload WebViewOverlay library in a central artifact repository. I chose JCenter because its one of the largest artifact repository for Java and Android libraries and has good integration with Android Studio IDE.
WebViewHelper Library in Android
Recently, I've fiddling around a long lived Widget in Android "WebViews". I created a open source library WebView Helper to help with automatic URL validations and connivence methods to enable and disable JavaScript in a WebView. Don't forget to checkout out this post.
Source code is available on Github here.
Source code is available on Github here.
RecyclerView sample code examples
If you're looking for sample code to get started with RecyclerView in Android, then this post is for you !
Here's link to my github repo to demonstrate Linear and Grid Layout using RecyclerView.
Here's link to my github repo to demonstrate Linear and Grid Layout using RecyclerView.
Convert Canvas into Bitmap and Saving image in Gallery
Have you ever thought of drawing something on Canvas and sharing it with others ? If yes, then this post is for you :)
So, you know that you can draw your stuff on a Canvas view. If you want to share your work with others, you may want to save it as an image. This post shows how to convert a Canvas view into a bitmap. First "Play" menu-item will show a programmatically drawn text on canvas view. "Save" icon will save it in gallery as well as in external SD card.
Details:
First create Custom View called MyCanvas class:
Second, reference MyCanvas from MainActivity class to show it inside ImageView. I've two menu-items, one is for showing the bitmap and another is to take save action :
Here's link to the github repo: https://github.com/ptyagi911/MyCanvasApp
So, you know that you can draw your stuff on a Canvas view. If you want to share your work with others, you may want to save it as an image. This post shows how to convert a Canvas view into a bitmap. First "Play" menu-item will show a programmatically drawn text on canvas view. "Save" icon will save it in gallery as well as in external SD card.
Details:
First create Custom View called MyCanvas class:
package com.teach.mycanvasapp; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class MyCanvas extends View { public MyCanvas(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); Paint pBackground = new Paint(); pBackground.setColor(Color.WHITE); canvas.drawRect(0, 0, 512, 512, pBackground); Paint pText = new Paint(); pText.setColor(Color.BLACK); pText.setTextSize(20); canvas.drawText("This is a sample canvas image", 100, 100, pText); } }
Second, reference MyCanvas from MainActivity class to show it inside ImageView. I've two menu-items, one is for showing the bitmap and another is to take save action :
package com.teach.mycanvasapp; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.BitmapDrawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; public class MainActivity extends AppCompatActivity { ImageView imageView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.show_canvas) { View v = new MyCanvas(getApplicationContext()); Bitmap bitmap = Bitmap.createBitmap(500/*width*/, 500/*height*/, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); v.draw(canvas); imageView = (ImageView) findViewById(R.id.imageView); imageView.setImageBitmap(bitmap); return true; } else if (id == R.id.save_canvas) { saveImageToGallery(); return true; } return super.onOptionsItemSelected(item); } public void saveImageToGallery() { Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); //Writing image to SD card. //It could also be saved to internal storage. // That way, we don't need to have extra permissions File dir = new File("/sdcard/tempfolder/"); try { if (!dir.exists()) { dir.mkdirs(); } File output = new File(dir, "tempfile.jpg"); if (!output.exists()) output.createNewFile(); OutputStream os = null; os = new FileOutputStream(output); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os); os.flush(); os.close(); //Scans image and save it in gallery MediaScannerConnection.scanFile(this, new String[] { output.toString() }, null, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.d("Test", "Image saved in gallery!"); } } ); } catch (Exception e) { Log.d("Test", "Exception: " + e.getMessage()); } } }
Here's link to the github repo: https://github.com/ptyagi911/MyCanvasApp
Safe Installing from Web on Mac OSX
- Step 1: You should have md5 tool setup to verify installer/file downloaded from web.
- brew install md5sha1sum
- Step 2: Check downloaded file like this:
- md5sum <path-to-file-to-be-verified>
Android Studio: Files to keep in version control
Here's list of files that should be kept under version control like Git:
- compiler.xml
- encodings.xml
- modules.xml
- *.ipr : Contains project related data.
- workspace.xml
- *.iws : Contains user specific data.
Tinkering with Physical Web (Android)
How to convert a device into beacon (Device 1)
- Install Beacon Toy application on device that you want to convert/use as beacon.
- Enable data (wifi or cellular and bluetooth on this device)
- Configure URL in Beacon Toy application. You also have option to choose to get a short url.
- I'm using my blog's url for this testing purpose.
How to enable physical web on your device (Device 2)
- Enable data, location and bluetooth
- Open Chrome and turn on Physical Web
- Chrome --> Settings --> Privacy --> Physical Web
- Download Physical Web app from Play Store.
- Open Physical Web app.
- It'll start scanning all the nearby beacons.
- It'll pick up Device 1's transmitted url and open my blog :)
Subscribe to:
Posts (Atom)
Scheduling Repeating Local Notifications using Alarm Manager
Learn about Scheduling Repeating Local Notifications using Alarm Manager in this post .
-
Couple of days ago, I started using Google's code projects for Git as well. It required me to setup and use .netrc file. Here are steps...
-
I've been struggling to get this working for about 2 days now. I was able to POST a request directly from sockets, but it took me a whi...
-
Okay, so I wanted to use Hex.encodeHexString method from org.apache.commons.codec.binary.Hex (commons-codec-1.6.jar) library to generate...