Adding Text on an Image in Phimpme Android
As Phimpme Android is an image app which provides own custom camera, editing, and sharing images on multiple platforms, so we decided to introduce a new feature, where the user can write text on images.
Using this feature, a user can write text on images and share on multiple platforms like Facebook, twitter, wordPress, drupal, pinterest, etc. In this post, I am going to explain how I implemented this feature.
Writing Text on image in Phimpme Android
How I implemented Text on Image in Phimpme
First, create an imageview and apply the original image bitmap or load with any image library by providing the local path of the image.
imageView.setImageBackgroundResources(imagePath);
Once an image is loaded we will ask a user to enter text in editext and the text will be displayed above the image. The code for this is:
EditText inputBox = (EditText) layout.findViewById(R.id.editText); String textString = inputBox.getText().toString();
Now we have textString variable that stores the text we wanted to display. To set this text we need to create a textview on the image, which can be done as follows:
TextView textView = new TextView(context); textView.setText(textString);
We allow the user to drag the text over image to his/her desired location. This is done using setOnTouchListener() as follows
TextView.setOnTouchListener(new View.OnTouchListener() { float lastX = 0, lastY = 0; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case (MotionEvent.ACTION_DOWN): lastX = event.getX(); lastY = event.getY(); break; case MotionEvent.ACTION_MOVE: float dx = event.getX() - lastX; float dy = event.getY() - lastY; float finalX = v.getX() + dx; float finalY = v.getY() + dy + v.getHeight(); v.setX(finalX; v.setY(finalY); break; } return true; } });
Thus, we have set the text according to the user’s desired location.
Problem I faced
The text doesn’t appear to move from the desired position, instead, the text moves from some offset value. To solve this I have used two variable finalX and finaly. Now I am calculating the distance from the point to corner and adding the extra offset value to finalX and finalY. So this is how I achieve perfect image on text feature with point accuracy in Phimpme-Android.
Resources:
- Another tutorial for drawing text on images: http://android-er.blogspot.in/2013/08/draw-text-on-bitmap-using-canvasdrawtext.html
- Another tutorial for writing text on images: http://whats-online.info/science-and-tutorials/126/how-to-write-text-on-bitmap-image-in-android-programmatically/
You must be logged in to post a comment.