Tuesday, May 28, 2013

Side Slider in for Android

Slider on side is more toughest task , i have try to implement it. Below code shows how to implement it.















1:- MainActivity.java:-


package com.example.sideslider;

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

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
CheckBox c1,c2,c3;
int key=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final CustomisedPanel popup = (CustomisedPanel)
findViewById(R.id.popup_window);
popup.setVisibility(View.GONE);
final Button btn=(Button)findViewById(R.id.show_popup_button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(key==0){
key=1;
popup.setVisibility(View.VISIBLE);
btn.setBackgroundResource(R.drawable.direction_right);
} else if(key==1){
key=0;
popup.setVisibility(View.GONE);
btn.setBackgroundResource(R.drawable.direction_right);
}
}
});
}
}

--------------------------------------------------------------------------------------------------------


2:-CustomisedPanel.java:-


 package com.example.sideslider;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PointF;
import android.graphics.RectF;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.LinearLayout;
public class CustomisedPanel extends LinearLayout
{
private Paint innerPaint, borderPaint ;
public CustomisedPanel(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomisedPanel(Context context) {
super(context);
init();
}
private void init() {
innerPaint = new Paint();
innerPaint.setARGB(225, 75, 75, 75); //gray
innerPaint.setAntiAlias(true);
borderPaint = new Paint();
borderPaint.setARGB(255, 255, 255, 255);
borderPaint.setAntiAlias(true);
borderPaint.setStyle(Style.STROKE);
borderPaint.setStrokeWidth(2);
}
public void setInnerPaint(Paint innerPaint) {
this.innerPaint = innerPaint;
}
public void setBorderPaint(Paint borderPaint) {
this.borderPaint = borderPaint;
}
@Override
protected void dispatchDraw(Canvas canvas) {
RectF drawRect = new RectF();
drawRect.set(0,0, getMeasuredWidth(), getMeasuredHeight());
canvas.drawRoundRect(drawRect, 5, 5, innerPaint);
canvas.drawRoundRect(drawRect, 5, 5, borderPaint);
super.dispatchDraw(canvas);
}
}
-----------------------------------------------------------------------------------------------



3:-main.xml


 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:gravity="center_vertical"
android:background="@drawable/rectangle"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.example.sideslider.CustomisedPanel
android:id="@+id/popup_window"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:padding="1px"
android:background="#ffffff">
<CheckBox android:id="@+id/check1"
android:layout_width="wrap_content"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:text="Satellite View" />
<CheckBox android:id="@+id/check2"
android:layout_width="wrap_content"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:text="Street View" />
<CheckBox android:id="@+id/check3"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Traffic" />
</com.example.sideslider.CustomisedPanel>
<Button android:id="@+id/show_popup_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/direction_right"/>


</LinearLayout>
------------------------------------------------------------------------------------------------------





No comments:

Post a Comment