Full Screen and Orientation Control যেভাবে করা যায়

ফুল-স্ক্রীনঃ

১।মেনিফেস্টের মাধ্যমেঃ

<activityandroid:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
</activity>

২। জাভাকোডের মাধ্যমে

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.main);
}

ওরিয়েন্টেশান কন্ট্রোলঃ
১। মেনিফেষ্টের মধ্যমে

<activityandroid:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
২। জাভা কোডের মাধ্যমে


public abstract class AbstractActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

টাইম পিকার ভিঊ(Time Picker View)

আজকে দেখব কিভাবে android Time Picker widget  নিয়ে কাজ করা যায় ।বিষয়টা খুবি সহজ একটি বিষয় কারন এটি একটি বিল্ট-ইন ইঊজেড । শুধু একে বিভিন্নভাবে ব্যাবহার করতে হবে । আমরা এখন দেখব টাইম পিকারে টাইম দেওয়ার(টাইম সিলেক্ট )
পর ওকে বাটনে ক্লিক করলে টোষ্ট এর মাধ্যমে তা জানিয়ে দেবে এবং তা স্ক্রিন-এ দেখাবে।

প্রথমে xml file এ নিচের মত করে লিখিঃ

<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:background="#00FF00"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TimePicker
android:id=”@+id/timePicker1″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentTop=”true”
android:layout_centerHorizontal=”true”
android:layout_marginTop=”68dp” />

<Button
android:id=”@+id/button1″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignLeft=”@+id/timePicker1″
android:layout_below=”@+id/timePicker1″
android:layout_marginLeft=”42dp”
android:layout_marginTop=”24dp”
android:text=”OK” />

<TextView
android:id=”@+id/textView1″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentLeft=”true”
android:layout_alignParentTop=”true”
android:layout_marginTop=”32dp”
android:text=” Time is :”
android:textAppearance=”?android:attr/textAppearanceLarge” />

<EditText
android:id=”@+id/editText1″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignBottom=”@+id/textView1″
android:layout_toRightOf=”@+id/button1″
android:background=”#FFFFFF”
android:ems=”10″ >

<requestFocus />
</EditText>

</RelativeLayout>

এবার জাভা কোড গুলো দেখি

package com.example.timepicker;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends Activity {

EditText et;
TimePicker picker;
Button b;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et=(EditText) findViewById(R.id.editText1);
picker=(TimePicker) findViewById(R.id.timePicker1);
b=(Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {

et.setText(“CurrentTime:”+picker.getCurrentHour()+”:”+picker.getCurrentMinute());
Toast.makeText(getBaseContext(), “Current Time Selected : “+picker.getCurrentHour()+”:”+picker.getCurrentMinute(), Toast.LENGTH_LONG).show();

}});

}}

device-2014-01-03-200924 বিস্তারিত পড়ুন

EditText এর সাহায্য আউটপুট দেখানো

EditText হল এমন একটি কম্পনেন্ট যেটার মাধ্যমে লেখা দেখানো যায় এবং আউট পুট শো করা যায় । textView এর সাথে এটার প্রধান পার্থক্য হল যে-EditText এর মাধ্যমে ইনপুট নেওয়া যায় ।
তো আমরা একটি উদাহরনের মাধ্যমে দেখি –
[

]

EditText টি ভালো করে দিখি প্রথমে id দিয়েছি ।জানা দরকার আইডি android:id=”@+id/editText1″ এভাবে লিখতে হয় । লেয়াঊট হাইট এন্ড উইডথ কে wrap_content করা হয়েছে । তিন ধরনের লেয়াউট নির্ধারন কারী টুলস আছ – ১। wrap_content এর মধ্যেম default স্পেস নির্ধারন করে ।
২। fill_parent এর মধ্যমে সম্পুর্ন যায়গা দখল করে ৩। mach_parent এর মাধ্যমে সম্পুর্ন জায়গা দখল করে । fill_parent and match_parent are same at all.
এখন আমরা জাভা কোড দেখি

package com.example.tutorial;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class EDitTEXT extends Activity{

EditText et;
Button b;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

setContentView(R.layout.editext);
et=(EditText) findViewById(R.id.editText1);
b=(Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
et.setText(“this is for EditText “);

}});

}

}et.setText(“this is for EditText “);এই কোডটুকু দেখি ,কি করা হয়েছে ? EditText (et) কে setText () e add করা হয়েছে । তাই যখনি বাটনে ক্লিক করব তখনি এই লেখাটি দেখাবে – this is for EditText EditText এর ভিতরে ।editTextr

Paint Style( Graphics)

Paint style এর মাঝে তিন ধরনের স্টাইল উল্লেখ যোগ্য
LinearGradient
RadialGradient
SweepGradient
তা ছাড়া Paint Style setStyle() use করেও স্টাইল চেঞ্জ করা যায় ।
Paint linePaint = new Paint();
linePaint.setStyle(Paint.Style.STROKE);
এর মাধ্যমে স্টোক দেওয়া যায়।


paintSyle.java

package com.example.graphics2d;

import android.app.Activity;
import android.os.Bundle;

public class paintStyle extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(new style(this));
}

}

style.java
package com.example.graphics2d;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.view.View;

public class style extends View {

public style(Context context) {
super(context);
// TODO Auto-generated constructor stub

}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

canvas.drawColor(Color.BLACK);

Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStyle(Paint.Style.STROKE);-----এখানে স্টোক দেওয়া হয়েছে

Typeface face=Typeface.createFromAsset(getContext().getAssets(), "chess1.ttf");

paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setTypeface(face);

canvas.drawText("WwQqRr ",20,20, paint);
canvas.drawText("WwQqRr ",20,40, paint);
canvas.drawText("WwQqRr ",20,120, paint);
canvas.drawText("WwQqRr ",20,150, paint);

paint.setColor(Color.RED);
canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2, canvas.getWidth()/3, paint);

}

}four

customise Text

আগের পোস্টটি এখবার দখে আসলে বঝতে সুবিধা হবে।
এবার আমরা custom text লেখা দেখব । কিভাবে custom font ব্যাবহার করা যায়। দেখব কিভাবে chess এর symbol text হিসেবে ব্যাবহার করা যায় ।প্রথমে আমরা এখান থেকে ডাউন লোড করে নিই ।তার পর নিচের মত কোড লেখি —- after downloading the font we have to paste it onto asset folder then it ok .

When you type a: You get a:
Q A black queen on a white square
q A white queen on a white square
W A black queen on a black square
w A white queen on a black square
R A black rook on a white square
r A white rook on a white square
T A black rook on a black square
t A white rook on a black square
N A black knight on a white square
n A white knight on a white square
M A black knight on a black square
m A white knight on a black square
B A black bishop on a white square
b A white bishop on a white square
V A black bishop on a black square
v A white bishop on a black square
K A black king on a white square
k A white king on a white square
L A black king on a black square
l A white king on a black square
P A black pawn on a white square
p A white pawn on a white square
O A black pawn on a black square
o A white pawn on a black square
/ An empty black square
A space An empty white square
1 An upper border side
2 An right border side
3 An left border side
4 An lower border side
5 An upper left corner of the border
6 An upper right corner of the border
7 An lower left corner of the border
8 An lower right corner of the border

package com.example.graphics2d;

import android.R.color;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.view.View;

public class Circle2D extends View {

public Circle2D(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

canvas.drawColor(Color.BLACK);

Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);

//Typeface face=Typeface.create(Typeface.MONOSPACE, Typeface.BOLD_ITALIC);
Typeface face=Typeface.createFromAsset(getContext().getAssets(), "chess1.ttf");//path দখিয়ে দিলাম।

paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setTypeface(face);

canvas.drawText("WwQqRr ",20,20, paint);
canvas.drawText("WwQqRr ",20,40, paint);
canvas.drawText("WwQqRr ",20,120, paint);
canvas.drawText("WwQqRr ",20,150, paint);

paint.setColor(Color.RED);
canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2, canvas.getWidth()/3, paint);

}

}
tree

canvas এ text দেওয়া

এবার আমরা জানব canvas এ কিভাবে text add করা যায়। তার আগে এর আগের পোস্ট টি দেখে আসা ভাল-circle draw

package com.example.graphics2d;

import android.R.color;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.view.View;

public class Circle2D extends View {

public Circle2D(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

canvas.drawColor(Color.BLACK);

সবার আগে flag add করে নিতে হবে
Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);


paint.setColor(Color.CYAN);---কালার এড করলাম
paint.setTextSize(20);----্টেস্ক সাইজ় এড করলাম
paint.setTypeface(null);----টাইপফেস নাল রাখলাম । এখানে বলে রখা দরকার এটি ডিফল্ process . it ser sans-sarif as a font and normal mode if we change this we have to add [Typeface face=Typeface.create(Typeface.MONOSPACE, Typeface.BOLD_ITALIC)] and have to set face replaced by null in paint.setTypeface() .

paint.setFlags(Paint.UNDERLINE_TEXT_FLAG);-----to underLine the text
canvas.drawText("It is a Circle",20,20, paint);----it is the main form to add text . canvas.drawText() has four argument one-text two-width three--height forth-- Paint that we set before


paint.setColor(Color.RED);
canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2, canvas.getWidth()/3, paint);

}

}

one

এবার Typeface face=Typeface.create(Typeface.MONOSPACE, Typeface.BOLD_ITALIC); সেট করলে text এমন দেখাবে

package com.example.graphics2d;

import android.R.color;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.view.View;

public class Circle2D extends View {

public Circle2D(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

canvas.drawColor(Color.BLACK);

Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);

Typeface face=Typeface.create(Typeface.MONOSPACE, Typeface.BOLD_ITALIC);---for this we set our custom Typeface

paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setTypeface(face);
paint.setFlags(Paint.UNDERLINE_TEXT_FLAG);
canvas.drawText("It is a Circle",20,20, paint);
paint.setColor(Color.RED);
canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2, canvas.getWidth()/3, paint);

}

}

two

circle অংকন

আমরা এখন দেখব কিভাবে android এ গ্রাফিক্স নিয়ে কাজ করা যায় । নিচে একটি circle draw করেছি যার background Black


Circle.class

package com.example.graphics2d;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class Circle extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new Circle2D(this));// circle2D class কল করলাম।

}

}

Circle2D.class


package com.example.graphics2d;

import android.R.color;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class Circle2D extends View {

public Circle2D(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

@Override
protected void onDraw(Canvas canvas) {//onDraw method নিলাম ।এটি মুলত graphics draw করার জন্যuse kora হয়
// TODO Auto-generated method stub
super.onDraw(canvas);

canvas.drawColor(Color.GREEN);//background color is green

Paint paint=new Paint();//to paint

paint.setColor(Color.RED);//color set as red
canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2, canvas.getWidth()/3, paint);
[canvas.drawCircle(canvas.getWidth()/2,canvas.getHeight()/2, canvas.getWidth()/3, paint);
canvas.getWidth()/2------width কোথায় হবে তা নির্ধারন করে দিলাম। এর মানে হল টোটাল ওয়াইডের –হাফ পজিশানে সেট করলাম
canvas.getHeight()/2--------একই ভাবে হাইট সেট করলাম
canvas.getWidth()/3--------- এটি গুরুত্তপূর্ন । এটি বোঝায় আয়তন কত হবে ।আমরা টোটাল হাইটের এক-ত্রিতিয়াং করলাম
paint-----পেন্ট ক্লাসের অব্জেক্ট]

}

}

Capture

SMSManager এর মাধ্যমে এসএমএস পাঠানো

এখন আমরা দেখব কিভাবে smsManager এর মাধ্যমে মেসেজ পাঠানো যায় । প্রথমে বাটন তৈরির জন্য এরকম লেয়াঊট তৈরি করি ।
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:layout_width="match_parent" android:text="Button" android:layout_height="wrap_content" android:id="@+id/button1"></Button>
</LinearLayout>

তার পর এরুপ একটি জাভা ফাইল তৈরি করি ।

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class sendSMS2 extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.sms2);
Button b=(Button) findViewById(R.id.button1);

b.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

sendSMS(“Helo my frieds!!”,”01737480544″);

}

private void sendSMS(String message, String number) {
SmsManager m=SmsManager.getDefault();
m.sendTextMessage(number, null, message, null, null);

}});

}

}

তবে মনে রাখতে হবে android menifest file এ অবশ্যই এই পার্মিশান যোগ করতে হবে-

<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

SMS

এখন আমরা দেখব কিভাবে SMS পাঠানো যায়।কয়েকভাবে sms পাঠানো যায় তবে আমরা এখানে    intent.setType(“vnd.android-dir/mms-sms”) এর মাধ্যমে অর্থাৎ এন্ড্রয়েডের নিজস্ব ব্যাবস্থাপনার মাধ্যমে তা করে দেখব।প্রথমে আমারা এইরুপ জাভা ফাইল লিখি–

package com.sms.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class sendSMS extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button=(Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener(){

public void onClick(View v) {
Intent intent=new Intent(android.content.Intent.ACTION_VIEW);

intent.putExtra(“sendTo”,”01737480544″);
intent.putExtra(“message”,”Hellow everyBody”);
intent.setType(“vnd.android-dir/mms-sms”);

startActivity(intent);

}});

}
}

এবার একটি xml ফাইল তৈরি করি —

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>
<Button android:text=”Button” android:id=”@+id/button1″ android:layout_height=”wrap_content” android:layout_width=”match_parent”></Button>
</LinearLayout>

<uses-permission android:name=”android.permission.SEND_SMS”></uses-permission> এই লাইন টা অতিরিক্ত লিখতে হবে পার্মিশান নেওয়ার জন্য

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
package=”com.sms.android”
android:versionCode=”1″
android:versionName=”1.0″>
<uses-sdk android:minSdkVersion=”10″ />
<uses-permission android:name=”android.permission.SEND_SMS”></uses-permission>

<application android:icon=”@drawable/icon” android:label=”@string/app_name”>
<activity android:name=”.sendSMS”
android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>

</application>
</manifest>

ইমেইল

এ পর্বে আমরা দেখব কিভাবে ইমেইল পাঠাতে হয় । প্রথমে লেয়াঊটে গিয়ে main.xml ফাইল এ এরকম ভাবে লিখি ,পেস্ট করাও যেতে পারে ।

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>

<Button
android:id=”@+id/btnSendEmail”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”Send Email” />

</LinearLayout>

 

এরপর  জাভা ফাইল এ এই কোডগুলো লিখি। রান করি তার পর আন্ড্রয়েড সেট এ টেস্ট করি তবে কম্পিটারে ভার্চুয়াল ডিভাইসে রান করলেও ফলাফল পাওয়া যাবে না ।

 

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
Button btnSendEmail;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btnSendEmail = (Button) findViewById(R.id.btnSendEmail);
btnSendEmail.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
String[] to = {“weimenglee@learn2develop.net”, “weimenglee@gmail.com”};
String[] cc = {“course@learn2develop.net”};
sendEmail(to, cc, “Hello”, “Hello my friends!”);
}
});
}

//—sends an SMS message to another device—
private void sendEmail(String[] emailAddresses, String[] carbonCopies,
String subject, String message)
{
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse(“mailto:”));
String[] to = emailAddresses;
String[] cc = carbonCopies;
emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
emailIntent.putExtra(Intent.EXTRA_CC, cc);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, message);
emailIntent.setType(“message/rfc822”);
startActivity(Intent.createChooser(emailIntent, “Email”));
}
}