Pages

Monday, 25 February 2013

EditView in ListView row: focus lost when soft keyboard shows


You need to change in your AndroidManifest.xml
Add android:windowSoftInputMode="adjustPan" in the activity holding the listview. This will solve your problem.
    <activity android:name=".MyActivity"
              android:label="@string/app_name"
              android:windowSoftInputMode="adjustPan">

Thursday, 7 February 2013

Android how to create custom spinner

following is demo with spinner with image. and also different color for selected item .

Main spinner layout



    



spinner item layout



    

    


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

  String[] str = new String[5];
  str[0] = "first";
  str[1] = "second";
  str[2] = "third";
  str[3] = "forth";
  str[4] = "fifth";
  Spinner spinner = (Spinner) findViewById(R.id.ddSample);

  // Apply the adapter to the spinner
  spinner.setAdapter(new BGSpinnerAdapter(this, str,getResources().getColor(R.color.unknown),getResources().getColor(R.color.red)));
 }

 
}

Spinner Adapter

public class BGSpinnerAdapter implements SpinnerAdapter {
 private String[] arrItem;
 private int count;
 private Context mContext;
 private int selectedColor;
 private int itemColor;

 public BGSpinnerAdapter(Context mContext, String[] arrItem) {
  this.mContext = mContext;
  this.arrItem = new String[arrItem.length];
  this.arrItem = arrItem;
  count = arrItem.length;
  this.selectedColor = mContext.getResources().getColor(
    android.R.color.black);
  this.itemColor = mContext.getResources().getColor(R.color.red);
 }

 public BGSpinnerAdapter(Context mContext, String[] arrItem,
   int selectedColor, int itemColor) {
  this.mContext = mContext;
  this.arrItem = new String[arrItem.length];
  this.arrItem = arrItem;
  count = arrItem.length;
  this.selectedColor = selectedColor;
  this.itemColor = itemColor;
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return count;
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public int getItemViewType(int position) {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  if (position < getCount()) {
   LayoutInflater inflater = (LayoutInflater) mContext
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View rowView = inflater.inflate(R.layout.bg_spinner_item, parent,
     false);
   TextView txtSpinnerItem = (TextView) rowView
     .findViewById(R.id.txtSpinnerItem);
   txtSpinnerItem.setTextColor(selectedColor);
   txtSpinnerItem.setText(arrItem[position]);
   return rowView;
  }
  return null;
 }

 @Override
 public int getViewTypeCount() {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public boolean hasStableIds() {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public boolean isEmpty() {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public void registerDataSetObserver(DataSetObserver observer) {
  // TODO Auto-generated method stub

 }

 @Override
 public void unregisterDataSetObserver(DataSetObserver observer) {
  // TODO Auto-generated method stub

 }

 @Override
 public View getDropDownView(int position, View convertView, ViewGroup parent) {
  if (position < getCount()) {
   LayoutInflater inflater = (LayoutInflater) mContext
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View rowView = inflater.inflate(R.layout.bg_spinner_item, parent,
     false);
   TextView txtSpinnerItem = (TextView) rowView
     .findViewById(R.id.txtSpinnerItem);
   txtSpinnerItem.setTextColor(itemColor);
   txtSpinnerItem.setText(arrItem[position]);
   return rowView;
  }

  return null;
 }

}

android margin not working in frame layout in android 2.2

Use android:layout_gravity="top" with child views of frame layout. 

Tuesday, 5 February 2013

android sliding menu like facebook

Please check following demo project .

https://github.com/gitgrimbo/android-sliding-menu-demo

Wednesday, 30 January 2013

Android - Make ImageView's transparent area not clickable


ImageView :
ImageView imgView= (ImageView) findViewById(R.id.color_blue);
imgView.setDrawingCacheEnabled(true);
imgView.setOnTouchListener(changeColorListener); 


OnTouchListener:

private final OnTouchListener changeColorListener = new OnTouchListener() {

  @Override
  public boolean onTouch(final View v, MotionEvent event) {

   Bitmap bmp = Bitmap.createBitmap(v.getDrawingCache());
   int color = 0;
   try {
    color = bmp.getPixel((int) event.getX(), (int) event.getY());
   } catch (Exception e) {
    // e.printStackTrace();
   }
   if (color == Color.TRANSPARENT)
    return false;
   else {

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
     //do something here
     break;
    case MotionEvent.ACTION_OUTSIDE:
     break;
    case MotionEvent.ACTION_CANCEL:
     break;
    case MotionEvent.ACTION_MOVE:
     break;
    case MotionEvent.ACTION_SCROLL:
     break;
    case MotionEvent.ACTION_UP:
     //do something here
     break;
    default:
     break;
    }
    return true;

   }
  }
 };