25 April 2014

draw text in canvas using edittext

draw text in canvas using edittext

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="packagename.MainActivity">

<intraction.arrow.app.DrawView
    android:id="@+id/drawView"
    android:layout_width="fill_parent"
    android:layout_height="200dp" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:hint="Enter your Text"
        android:focusable="true"
        android:layout_below="@+id/drawView"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save Image"
        android:id="@+id/button"
        android:layout_below="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />


</RelativeLayout>




MainActivity.java

package packagename;


import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;



public class MainActivity extends ActionBarActivity {

    Communicator communicator;
//ListView listView;
    EditText editText;
    Button saveButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //listView = (ListView) findViewById(R.id.listView);
        //NetworkConfig config = new NetworkConfig("http://arrowgifts.com/mobile/mobile_home");

        //drawView = new DrawView(this);
        //drawView = (DrawView) findViewById(R.id.drawView);
        communicator = (Communicator)findViewById(R.id.drawView);
        //setContentView(drawView);
       // save();
        saveButton = (Button) findViewById(R.id.button);
        saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                communicator.saveImage();
            }
        });
        editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener( new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
communicator.writeText(editText.getText().toString());
    }

    @Override
    public void afterTextChanged(Editable editable) {

    }
});
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
     
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

/**
 * Communicator
 * **/
public interface Communicator{
    public void writeText(String string);
    public void saveImage();
}



}
//...................................\\


DrawView.java

package packagename;


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;


import android.util.AttributeSet;

import android.view.View;



/**
 * Created by sravan on 4/22/2014.
 */
public class DrawView extends View implements MainActivity.Communicator {
    Bitmap bitmap;
Bitmap newBitmap;

//        public DrawView(Context context) {
//            this(context,null);
//        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.templer);
//        newBitmap = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth()-100,bitmap.getHeight()-100);
//
//
//    }

    public DrawView(Context context, AttributeSet attrs) {

        super(context, attrs);
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.templer);
        newBitmap = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth()-100,bitmap.getHeight()-100);
    }

//    public DrawView(Context context, AttributeSet attrs, int defStyleAttr) {
//        super(context, attrs, defStyleAttr);
//    }







    @Override
    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);
        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(Color.RED);
        paint.setTextSize(50);
        paint.setStyle(Paint.Style.FILL);


        canvas.drawBitmap(newBitmap, 0, 0, null);

        canvas.drawText(textToBeWritten, 10, 50, paint);
        setDrawingCacheEnabled(true);

    }

private String textToBeWritten ="Enter Text" ;
    @Override
    public void writeText(String string) {
        textToBeWritten = string;
        invalidate();
    }

    @Override
    public void saveImage() {
        SaveFile saveFile = new SaveFile();
        saveFile.save(getDrawingCache());
    }
}



SaveFile.java


package packagename;

import android.graphics.Bitmap;
import android.os.Environment;
import android.util.Log;

import java.io.File;
import java.io.FileOutputStream;

/**
 * Created by sravan on 4/23/2014.
 */
public class SaveFile {

    //Bitmap bitmap;// = getDrawingCache();
    public void save(Bitmap bitmap) {


        String root = Environment.getExternalStorageDirectory().toString();
        File myDir = new File(root + "/saved_images");
        myDir.mkdirs();

        String fname = "Image.jpg";
        File file = new File (myDir, fname);
        if (file.exists ()) file.delete ();
        try {
            FileOutputStream out = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
            out.flush();
            out.close();
            Log.i("Success", root + "/saved_images");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//..............................//


Tested in Android 4.2.2. API Level 19, and working fine.

10 April 2014

Key Down events in wp7

<TextBox Name="hrTextBox" MaxLength="1" Text="0"  KeyDown="hrTextBox_KeyDown" TextAlignment="Center" InputScope="Number"/>


Add this in your construcor to allow only numbers in text box


            InputScope scope = new InputScope();
            InputScopeName name = new InputScopeName();

            name.NameValue = InputScopeNameValue.Number;
            scope.Names.Add(name);

         

            minTextBox.InputScope = scope;

 private void hrTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
                case Key.D0:
                case Key.D1:
                case Key.D2:
                case Key.D3:
                case Key.D4:
                case Key.Back:
                case Key.Delete:
                    break;
                default: e.Handled = true;
                    return;
            }
        }


     
        private void minTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (minTextBox.Text != "")
            {
                if (int.Parse(minTextBox.Text) >= 6)
                {
                    switch (e.Key)
                    {
                        case Key.Back:
                        case Key.Delete:
                            break;
                        default: e.Handled = true;
                            return;
                    }
                }
            }

09 April 2014

Play shoutcast stream in Windows phone 7



Here are the steps to play shoutcast stream in wp7.

1) Download the open source project from here
2) extract the file and check the folders in the project
you will find "Bin" and "src" folders. open "src" folder
3) Now you will find following packages:-
Shoutcast.Sample
Shoutcast.Sample.Phone
Shoutcast.Sample.Phone.Background
Shoutcast.Sample.Phone.Background.PlaybackAgent
Silverlight.Media.ShoutCast
4) Add Shoutcast.Sample.Phone.Background.PlaybackAgent, and
Silverlight.Media.ShoutCast in to your project
5) Now go to your main project(UI project) right click on Referencts and select add Reference
6) Select "Solution" in right pannel there you will find projects (Shoutcast.Sample.Phone.Background.Playback
Silverlight.Media.ShoutCast.Phone)
7) Check the box Shoutcast.Sample.Phone.Background.Playback project and click "Ok"
(Note:- if you dont want to play background audio than you can add only Silverlight.Media.ShoutCast.Phone to your project)
8) Now go to Properties folder on top of the References go to WMAppManifest.xml right click on that and open with "xml(Text) editor"(this is for vs 2012)
9) add the following lines below </Capabilities>
    <Tasks>
      <DefaultTask Name="_default" NavigationPage="YourMainPage.xaml" />
      <ExtendedTask Name="BackgroundTask">
        <BackgroundServiceAgent Specifier="AudioPlayerAgent" Name="Shoutcast.Sample.Phone.Background.PlaybackAgent" Source="Shoutcast.Sample.Phone.Background.PlaybackAgent" Type="Shoutcast.Sample.Phone.Background.Playback.AudioPlayer" />
        <BackgroundServiceAgent Specifier="AudioStreamingAgent" Name="Shoutcast.Sample.Phone.Background.StreamAgent" Source="Shoutcast.Sample.Phone.Background.PlaybackAgent" Type="Shoutcast.Sample.Phone.Background.Playback.AudioTrackStreamer" />
      </ExtendedTask>
    </Tasks>
10) now rebuild your entire solution check to see if any errors in your build. if no errors found then your back ground audio should work


-Please comment for any quires. 

01 April 2014

VisualTreeHelper in wp7




        /// <summary>
        /// Finds a Child of a given item in the visual tree.
        /// </summary>
        /// <param name="parent">A direct parent of the queried item.</param>
        /// <typeparam name="T">The type of the queried item.</typeparam>
        /// <param name="childName">x:Name or Name of child. </param>
        /// <returns>The first parent item that matches the submitted type parameter.
        /// If not matching item can be found,
        /// a null parent is being returned.</returns>
        public static T FindChild<T>(DependencyObject parent, string childName)
           where T : DependencyObject
        {
            // Confirm parent and childName are valid.
            if (parent == null) return null;

            T foundChild = null;

            int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
            for (int i = 0; i < childrenCount; i++)
            {
                var child = VisualTreeHelper.GetChild(parent, i);
                // If the child is not of the request child type child
                T childType = child as T;
                if (childType == null)
                {
                    // recursively drill down the tree
                    foundChild = FindChild<T>(child, childName);

                    // If the child is found, break so we do not overwrite the found child.
                    if (foundChild != null) break;
                }
                else if (!string.IsNullOrEmpty(childName))
                {
                    var frameworkElement = child as FrameworkElement;
                    // If the child's name is set for search
                    if (frameworkElement != null && frameworkElement.Name == childName)
                    {
                        // if the child's name is of the request name
                        foundChild = (T)child;
                        break;
                    }
                }
                else
                {
                    // child element found.
                    foundChild = (T)child;
                    break;
                }
            }
            return foundChild;
        }
     

Contact Form

Name

Email *

Message *

Smooth Graphics Java

// Arrange Bricks in Game //java brick breaker game code without flickering // added game levels 1,2,3 in the game //java paddle ball ga...