Archive

Posts Tagged ‘Android’

Change color of button on click :Android

October 5, 2010 7 comments

This is used to change color of button on pressed or focused
write this code in your drawable folder

login_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Button Focused-->
    <item   android:state_focused="true"
            android:state_pressed="false"
            android:drawable="@drawable/login_hover"
            />
<!-- Button Focused Pressed-->
    <item   android:state_focused="true"
            android:state_pressed="true"
            android:drawable="@drawable/login_hover"
            />
<!-- Button Pressed-->
    <item   android:state_focused="false"
            android:state_pressed="true"
            android:drawable="@drawable/login_hover"
            />
<!-- Button Default Image-->
    <item   android:drawable="@drawable/login_bg"/>

</selector>

login_hover.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" shape="rectangle">
<!--this is to give gradient effect -->
<gradient   android:angle="270"
               android:startColor="#6b6b6b"
               android:endColor="#0e0e0e"
               />
<!-- this is make corners of button rounded -->
<corners    android:topLeftRadius="5dip"
               android:bottomRightRadius="5dip"
               android:topRightRadius="5dip"
               android:bottomLeftRadius="5dip"/>

</shape>

login_bg.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" shape="rectangle">
<!--this is to give gradient effect -->
<gradient   android:angle="270"
            android:startColor="#e7ff47"
            android:endColor="#90a501"
            />
<!-- this is make corners of button rounded -->
<corners    android:topLeftRadius="5dip"
               android:bottomRightRadius="5dip"
               android:topRightRadius="5dip"
               android:bottomLeftRadius="5dip"/>

</shape>

and in your code in res/layout/login.xml
or in your button’s code
android:background=”@drawable/login_selector”

Enjoy.. 😉 ..!!!

Advertisements
Categories: Android Tags: ,

Fading color effect with TransitionDrawable :Android

October 5, 2010 3 comments
RelativeLayout layout = (RelativeLayout) findViewById(R.id.Layout);
layout.setBackgroundResource(R.drawable.translate);
TransitionDrawable transition = (TransitionDrawable) layout.getBackground();
transition.startTransition(5000);

This code gives you a fading effect like from yellow to white(original color).

translate.xml

<?xml version="1.0" encoding="UTF-8"?>
   <transition xmlns:android="http://schemas.android.com/apk/res/android">
          <!-- The drawables used here can be solid colors, gradients, shapes, images, etc. -->
          <item android:drawable="@drawable/new_state" />
          <item android:drawable="@drawable/original_state" />
   </transition>

new_state.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape   xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
    <solid android:color="#FFFFA7"/>
</shape>

original_state.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape   xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
    <solid android:color="#FFFFFF"/>
</shape>

Enjoy.. 😉 ..!!!

Categories: Android Tags: , ,

Rotation animation in android

October 5, 2010 4 comments

Using this code you can rotate an image

        RotateAnimation rAnim = new RotateAnimation(0.0f, 360.0f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
        rAnim.setRepeatCount(Animation.INFINITE);
        rAnim.setInterpolator(new LinearInterpolator());
        rAnim.setDuration(700);
        /* refreshIcon is object of an imageView */
        refreshIcon.startAnimation(rAnim);

Enjoy.. 😉 ..!!!

Categories: Android Tags: ,

FlowLayout in Android

September 28, 2010 45 comments

This post is linked to previous post click here.
This will help you to create FlowLayout in android

Referred from here

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;

/**
 *
 * @author RAW
 */
public class FlowLayout extends ViewGroup {

    private int line_height;

    public static class LayoutParams extends ViewGroup.LayoutParams {

        public final int horizontal_spacing;
        public final int vertical_spacing;

        /**
         * @param horizontal_spacing Pixels between items, horizontally
         * @param vertical_spacing Pixels between items, vertically
         */
        public LayoutParams(int horizontal_spacing, int vertical_spacing) {
            super(0, 0);
            this.horizontal_spacing = horizontal_spacing;
            this.vertical_spacing = vertical_spacing;
        }
    }

    public FlowLayout(Context context) {
        super(context);
    }

    public FlowLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        assert (MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED);

        final int width = MeasureSpec.getSize(widthMeasureSpec) - getPaddingLeft() - getPaddingRight();
        int height = MeasureSpec.getSize(heightMeasureSpec) - getPaddingTop() - getPaddingBottom();
        final int count = getChildCount();
        int line_height = 0;

        int xpos = getPaddingLeft();
        int ypos = getPaddingTop();

        int childHeightMeasureSpec;
        if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
            childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST);
        } else {
            childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
        }


        for (int i = 0; i < count; i++) {
            final View child = getChildAt(i);
            if (child.getVisibility() != GONE) {
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
                child.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), childHeightMeasureSpec);
                final int childw = child.getMeasuredWidth();
                line_height = Math.max(line_height, child.getMeasuredHeight() + lp.vertical_spacing);

                if (xpos + childw > width) {
                    xpos = getPaddingLeft();
                    ypos += line_height;
                }

                xpos += childw + lp.horizontal_spacing;
            }
        }
        this.line_height = line_height;

        if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.UNSPECIFIED) {
            height = ypos + line_height;

        } else if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
            if (ypos + line_height < height) {
                height = ypos + line_height;
            }
        }
        setMeasuredDimension(width, height);
    }

    @Override
    protected ViewGroup.LayoutParams generateDefaultLayoutParams() {
        return new LayoutParams(1, 1); // default of 1px spacing
    }

    @Override
    protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
        if (p instanceof LayoutParams) {
            return true;
        }
        return false;
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        final int count = getChildCount();
        final int width = r - l;
        int xpos = getPaddingLeft();
        int ypos = getPaddingTop();

        for (int i = 0; i < count; i++) {
            final View child = getChildAt(i);
            if (child.getVisibility() != GONE) {
                final int childw = child.getMeasuredWidth();
                final int childh = child.getMeasuredHeight();
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
                if (xpos + childw > width) {
                    xpos = getPaddingLeft();
                    ypos += line_height;
                }
                child.layout(xpos, ypos, xpos + childw, ypos + childh);
                xpos += childw + lp.horizontal_spacing;
            }
        }
    }
}

Here the xml file.

/* you must write your package name and class name */
<org.android.FlowLayout
                android:id="@+id/flow_layout"
                android:layout_marginLeft="5dip"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"/>

This is very useful while creating bubble.

Enjoy.. 😉 ..!!!

Categories: Android Tags: , ,

Android: Create bubble like facebook

September 28, 2010 4 comments

create a class named Bubble and call wherever you want to create bubble

public class Bubble extends Activity {
       /* here FlowLayout is a custom layout, i will post soon */
       /*  ArrayList subjects_list, stores string value so that there would not be duplicate names */
   public static void getBubble(String myAutoComplete, final FlowLayout flowlayout, final ArrayList subjects_list, Context c) {

   String checksubClicked = myAutoComplete;

   if (!(checksubClicked.equals(""))) {

   if (!(subjects_list.contains(checksubClicked))) {
   subjects_list.add(myAutoComplete);

   /// creates bubble button
   final Button btn = new Button(c);
   LayoutParams flowLP = new LayoutParams(5, 5);
   btn.setBackgroundDrawable(c.getResources().getDrawable(R.drawable.bubble_layout));
   btn.setPadding(6, 2, 6, 2);
   btn.setTextSize(14);
   btn.setSingleLine(true);
   btn.setEllipsize(TruncateAt.END);
   btn.setTextColor(Color.BLACK);
   /// sets the text
   btn.setText(myAutoComplete + "  ");
   Resources res = c.getResources();
   Drawable image = res.getDrawable(R.drawable.bubble_input_close);
   /// sets the image to right
   btn.setCompoundDrawablesWithIntrinsicBounds(null, null, image, null);

   btn.setOnClickListener(new View.OnClickListener() {

   public void onClick(View arg0) {
   /// deletes bubble
   subjects_list.remove(btn.getText().toString().substring(0, btn.getText().toString().length() - 1).trim());
   /// this is to remove button from layout
   flowlayout.removeView(arg0);
   }
   });
    // flowLP is related to FlowLayout
   flowlayout.addView(btn, flowLP);
   }
   }
   }
}

In class where you want to create a bubble add
ArrayList subjects_list = new ArrayList();
FlowLayout flowlayout = (FlowLayout) findViewById(R.id.flow_layout);

Bubble.getBubble(stringValue, flowlayout, subjects_list,c);
here c is Context.

Here the xml file which contains the design of bubble named bubble_layout.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape      xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">

<solid   android:color="#EAEAEA"/>

<corners    android:bottomLeftRadius="3dip"
            android:topRightRadius="3dip"
            android:topLeftRadius="3dip"
            android:bottomRightRadius="3dip"
            />

</shape>

your bubble is ready

Enjoy.. 😉 ..!!!

Categories: Android Tags: ,
%d bloggers like this: