[LayoutAnimation7.java]

public class LayoutAnimation7 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.layout_animation_7);
    }
}


[layout_animation_7.xml]

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layoutAnimation="@anim/layout_animation_table"
    android:animationCache="false"
    android:clipToPadding="false"
    android:padding="12dp"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">

    <TableRow
        android:layoutAnimation="@anim/layout_animation_row_right_slide">
        <TextView
            android:gravity="right"
            android:text="@string/layout_animation_name" />
        <EditText />
    </TableRow>

    <TableRow
        android:layoutAnimation="@anim/layout_animation_row_left_slide">
        <TextView
            android:gravity="right"
            android:text="@string/layout_animation_lastname" />
        <EditText />
    </TableRow>

    <TableRow
        android:layoutAnimation="@anim/layout_animation_row_right_slide">
        <TextView
            android:gravity="right"
            android:text="@string/layout_animation_phone" />
        <EditText />
    </TableRow>

    <TableRow
        android:layoutAnimation="@anim/layout_animation_row_left_slide">
        <TextView
            android:gravity="right"
            android:text="@string/layout_animation_address" />
        <EditText android:lines="3" />
    </TableRow>
</TableLayout>




 

'old > API_Demo' 카테고리의 다른 글

Views_Layout_Linear Layout_Vertical  (0) 2010.04.26
Views_Layout_BaseLine  (0) 2010.04.26
Views_Layout Animation_Wave Scale  (0) 2010.04.26
Views_Layout Animation_Grid Direction  (0) 2010.04.26
Views_Layout Animation_Randomize  (0) 2010.04.26
Posted by jazzlife
,

[LayoutAnimation6.java]

public class LayoutAnimation6 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        loadApps();

        setContentView(R.layout.layout_animation_6);
        GridView grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(new AppsAdapter());
    }

    private List<ResolveInfo> mApps;

    private void loadApps() {
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

        mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
    }

    public class AppsAdapter extends BaseAdapter {
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(LayoutAnimation6.this);

            ResolveInfo info = mApps.get(position % mApps.size());

            i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
            i.setLayoutParams(new GridView.LayoutParams(36, 36));
            return i;
        }


        public final int getCount() {
            return Math.min(32, mApps.size());
        }

        public final Object getItem(int position) {
            return mApps.get(position % mApps.size());
        }

        public final long getItemId(int position) {
            return position;
        }
    }

}


 

[layout_animation_6.xml]

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid"
    android:layoutAnimation="@anim/layout_wave_scale"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:verticalSpacing="10dp"

    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"

    android:gravity="center" />

'old > API_Demo' 카테고리의 다른 글

Views_Layout_BaseLine  (0) 2010.04.26
Views_Layout Animation_Nested Animation  (0) 2010.04.26
Views_Layout Animation_Grid Direction  (0) 2010.04.26
Views_Layout Animation_Randomize  (0) 2010.04.26
Views_Layout Animation_Reverse Order  (0) 2010.04.26
Posted by jazzlife
,

[LayoutAnimation5.java]

public class LayoutAnimation5 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        loadApps();

        setContentView(R.layout.layout_animation_5);
        GridView grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(new AppsAdapter());
    }

    private List<ResolveInfo> mApps;

    private void loadApps() {
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

        mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
    }

    public class AppsAdapter extends BaseAdapter {
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(LayoutAnimation5.this);

            ResolveInfo info = mApps.get(position % mApps.size());

            i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
            i.setLayoutParams(new GridView.LayoutParams(36, 36));
            return i;
        }


        public final int getCount() {
            return Math.min(32, mApps.size());
        }

        public final Object getItem(int position) {
            return mApps.get(position % mApps.size());
        }

        public final long getItemId(int position) {
            return position;
        }
    }

}


 

[layout_animation_5.xml]

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid"
    android:layoutAnimation="@anim/layout_grid_inverse_fade"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"

    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"

    android:gravity="center" />

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_Nested Animation  (0) 2010.04.26
Views_Layout Animation_Wave Scale  (0) 2010.04.26
Views_Layout Animation_Randomize  (0) 2010.04.26
Views_Layout Animation_Reverse Order  (0) 2010.04.26
Views_Layout Animation_List Cascade  (0) 2010.04.26
Posted by jazzlife
,

[LayoutAnimation4.java]

public class LayoutAnimation4 extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        loadApps();

        setContentView(R.layout.layout_animation_4);
        GridView grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(new AppsAdapter());

    }

    private List<ResolveInfo> mApps;

    private void loadApps() {
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

        mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
    }

    public class AppsAdapter extends BaseAdapter {
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(LayoutAnimation4.this);

            ResolveInfo info = mApps.get(position % mApps.size());

            i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
            i.setLayoutParams(new GridView.LayoutParams(36, 36));
            return i;
        }


        public final int getCount() {
            return Math.min(32, mApps.size());
        }

        public final Object getItem(int position) {
            return mApps.get(position % mApps.size());
        }

        public final long getItemId(int position) {
            return position;
        }
    }
}


 [layout_animation_4.xml]

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid"
    android:layoutAnimation="@anim/layout_random_fade"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"

    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"

    android:gravity="center" />

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_Wave Scale  (0) 2010.04.26
Views_Layout Animation_Grid Direction  (0) 2010.04.26
Views_Layout Animation_Reverse Order  (0) 2010.04.26
Views_Layout Animation_List Cascade  (0) 2010.04.26
Views_Layout Animation_Grid Fade  (0) 2010.04.26
Posted by jazzlife
,

[LayoutAnimation3.java]

public class LayoutAnimation3 extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.layout_animation_3);
        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, mStrings));
    }

    private String[] mStrings = {
        "Bordeaux",
        "Lyon",
        "Marseille",
        "Nancy",
        "Paris",
        "Toulouse",
        "Strasbourg"
    };
}



[layout_animation_3.xml]

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layoutAnimation="@anim/layout_bottom_to_top_slide" />

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_Grid Direction  (0) 2010.04.26
Views_Layout Animation_Randomize  (0) 2010.04.26
Views_Layout Animation_List Cascade  (0) 2010.04.26
Views_Layout Animation_Grid Fade  (0) 2010.04.26
Views_ImageView  (0) 2010.04.21
Posted by jazzlife
,

[LayoutAnimation2.java]

public class LayoutAnimation2 extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, mStrings));

        AnimationSet set = new AnimationSet(true);

        Animation animation = new AlphaAnimation(0.0f, 1.0f);
        animation.setDuration(50);
        set.addAnimation(animation);

        animation = new TranslateAnimation(
            Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
            Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f
        );
        animation.setDuration(100);
        set.addAnimation(animation);

        LayoutAnimationController controller =
                new LayoutAnimationController(set, 0.5f);
        ListView listView = getListView();       
        listView.setLayoutAnimation(controller);
    }

    private String[] mStrings = {
        "Bordeaux",
        "Lyon",
        "Marseille",
        "Nancy",
        "Paris",
        "Toulouse",
        "Strasbourg"
    };
}

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_Randomize  (0) 2010.04.26
Views_Layout Animation_Reverse Order  (0) 2010.04.26
Views_Layout Animation_Grid Fade  (0) 2010.04.26
Views_ImageView  (0) 2010.04.21
Views_ImageSwitcher  (0) 2010.04.21
Posted by jazzlife
,

[LayoutAnimation1.java]

public class LayoutAnimation1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        loadApps();

        setContentView(R.layout.layout_animation_1);
        GridView grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(new LayoutAnimation1.AppsAdapter());
    }

    private List<ResolveInfo> mApps;

    private void loadApps() {
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

        mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
    }

    public class AppsAdapter extends BaseAdapter {
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(LayoutAnimation1.this);

            ResolveInfo info = mApps.get(position % mApps.size());

            i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
            i.setLayoutParams(new GridView.LayoutParams(36, 36));
            return i;
        }


        public final int getCount() {
            return Math.min(32, mApps.size());
        }

        public final Object getItem(int position) {
            return mApps.get(position % mApps.size());
        }

        public final long getItemId(int position) {
            return position;
        }
    }

}


[layout_animation_1.xml]

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid"
    android:layoutAnimation="@anim/layout_grid_fade"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"

    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"

    android:gravity="center" />

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_Reverse Order  (0) 2010.04.26
Views_Layout Animation_List Cascade  (0) 2010.04.26
Views_ImageView  (0) 2010.04.21
Views_ImageSwitcher  (0) 2010.04.21
Views_ImageButton  (0) 2010.04.21
Posted by jazzlife
,

Views_ImageView

old/API_Demo 2010. 4. 21. 11:12

[image_view_1.xml]

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
   
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
       
        <!-- The following four examples use a large image -->
        <!-- 1. Non-scaled view, for reference -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_large_normal"/>
        <ImageView
            android:src="@drawable/sample_1"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
           
        <!-- 2. Limit to at most 50x50 -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_large_at_most"/>
        <ImageView
            android:src="@drawable/sample_1"
            android:adjustViewBounds="true"
            android:maxWidth="50dip"
            android:maxHeight="50dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

       <!-- 3. Limit to at most 70x70, with 10 pixels of padding all around -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_large_at_most_padded"/>
       <ImageView
            android:src="@drawable/sample_1"
            android:background="#66FFFFFF"
            android:adjustViewBounds="true"
            android:maxWidth="70dip"
            android:maxHeight="70dip"
            android:padding="10dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
           
        <!-- 4. Limit to exactly 70x70, with 10 pixels of padding all around -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_large_exactly_padded"/>
        <ImageView
            android:src="@drawable/sample_1"
            android:background="#66FFFFFF"
            android:scaleType="centerInside"
            android:padding="10dip"
            android:layout_width="70dip"
            android:layout_height="70dip" />

        <!-- Repeating the previous four examples with small image -->
        <!-- 1. Non-scaled view, for reference -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_small_normal"/>
        <ImageView
            android:src="@drawable/stat_happy"
            android:background="#FFFFFFFF"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
           
        <!-- 2. Limit to at most 50x50 -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_small_at_most"/>
        <ImageView
            android:src="@drawable/stat_happy"
            android:background="#FFFFFFFF"
            android:adjustViewBounds="true"
            android:maxWidth="50dip"
            android:maxHeight="50dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

       <!-- 3. Limit to at most 70x70, with 10 pixels of padding all around -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_small_at_most_padded"/>
        <ImageView
            android:src="@drawable/stat_happy"
            android:background="#FFFFFFFF"
            android:adjustViewBounds="true"
            android:maxWidth="70dip"
            android:maxHeight="70dip"
            android:padding="10dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
           
        <!-- 4. Limit to exactly 70x70, with 10 pixels of padding all around -->
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dip"
            android:text="@string/image_view_small_exactly_padded"/>
        <ImageView
            android:src="@drawable/stat_happy"
            android:background="#FFFFFFFF"
            android:scaleType="centerInside"
            android:padding="10dip"
            android:layout_width="70dip"
            android:layout_height="70dip" />


    </LinearLayout>
</ScrollView>

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_List Cascade  (0) 2010.04.26
Views_Layout Animation_Grid Fade  (0) 2010.04.26
Views_ImageSwitcher  (0) 2010.04.21
Views_ImageButton  (0) 2010.04.21
Views_Grid_Photo Grid  (0) 2010.04.20
Posted by jazzlife
,

Views_ImageSwitcher

old/API_Demo 2010. 4. 21. 11:08

[ImageSwitcher1.java]

public class ImageSwitcher1 extends Activity implements
        AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.image_switcher_1);

        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
        mSwitcher.setFactory(this);
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));

        Gallery g = (Gallery) findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));
        g.setOnItemSelectedListener(this);
    }

    public void onItemSelected(AdapterView parent, View v, int position, long id) {
        mSwitcher.setImageResource(mImageIds[position]);
    }

    public void onNothingSelected(AdapterView parent) {
    }

    public View makeView() {
        ImageView i = new ImageView(this);
        i.setBackgroundColor(0xFF000000);
        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));
        return i;
    }

    private ImageSwitcher mSwitcher;

    public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return mThumbIds.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(mContext);

            i.setImageResource(mThumbIds[position]);
            i.setAdjustViewBounds(true);
            i.setLayoutParams(new Gallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            i.setBackgroundResource(R.drawable.picture_frame);
            return i;
        }

        private Context mContext;

    }

    private Integer[] mThumbIds = {
            R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
            R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
            R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
            R.drawable.sample_thumb_6, R.drawable.sample_thumb_7};

    private Integer[] mImageIds = {
            R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2,
            R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5,
            R.drawable.sample_6, R.drawable.sample_7};

}



[image_switcher_1.xml]

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
   
    <ImageSwitcher android:id="@+id/switcher"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
    />
   
    <Gallery android:id="@+id/gallery"
        android:background="#55000000"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
       
        android:gravity="center_vertical"
        android:spacing="16dp"
    />

</RelativeLayout>

'old > API_Demo' 카테고리의 다른 글

Views_Layout Animation_Grid Fade  (0) 2010.04.26
Views_ImageView  (0) 2010.04.21
Views_ImageButton  (0) 2010.04.21
Views_Grid_Photo Grid  (0) 2010.04.20
Views_Grid_Icon Grid  (0) 2010.04.20
Posted by jazzlife
,

Views_ImageButton

old/API_Demo 2010. 4. 21. 11:05

[image_button_1.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <ImageButton
     android:layout_width="100dip"
     android:layout_height="50dip"
     android:src="@android:drawable/sym_action_call" />
     
    <ImageButton
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:src="@android:drawable/sym_action_chat" />
     
    <ImageButton
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:src="@android:drawable/sym_action_email" />
</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_ImageView  (0) 2010.04.21
Views_ImageSwitcher  (0) 2010.04.21
Views_Grid_Photo Grid  (0) 2010.04.20
Views_Grid_Icon Grid  (0) 2010.04.20
Views_Gallery2_People  (0) 2010.04.20
Posted by jazzlife
,

Views_Grid_Photo Grid

old/API_Demo 2010. 4. 20. 10:44

[Grid2.java]

public class Grid2 extends Activity {

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

        setContentView(R.layout.grid_2);

        GridView g = (GridView) findViewById(R.id.myGrid);
        g.setAdapter(new ImageAdapter(this));
    }

    public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return mThumbIds.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(45, 45));
                imageView.setAdjustViewBounds(false);
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);
            } else {
                imageView = (ImageView) convertView;
            }

            imageView.setImageResource(mThumbIds[position]);

            return imageView;
        }

        private Context mContext;

        private Integer[] mThumbIds = {
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
                R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
                R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7,
        };
    }

}



[grid_2.xml]

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myGrid"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"
   
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"
   
    android:gravity="center"
    />

'old > API_Demo' 카테고리의 다른 글

Views_ImageSwitcher  (0) 2010.04.21
Views_ImageButton  (0) 2010.04.21
Views_Grid_Icon Grid  (0) 2010.04.20
Views_Gallery2_People  (0) 2010.04.20
Views_Gallery_Photos  (0) 2010.04.20
Posted by jazzlife
,

Views_Grid_Icon Grid

old/API_Demo 2010. 4. 20. 10:42

[Grid1.java]

public class Grid1 extends Activity {

    GridView mGrid;

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

        loadApps(); // do this in onresume?

        setContentView(R.layout.grid_1);
        mGrid = (GridView) findViewById(R.id.myGrid);
        mGrid.setAdapter(new AppsAdapter());
    }

    private List<ResolveInfo> mApps;

    private void loadApps() {
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

        mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
    }

    public class AppsAdapter extends BaseAdapter {
        public AppsAdapter() {
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i;

            if (convertView == null) {
                i = new ImageView(Grid1.this);
                i.setScaleType(ImageView.ScaleType.FIT_CENTER);
                i.setLayoutParams(new GridView.LayoutParams(50, 50));
            } else {
                i = (ImageView) convertView;
            }

            ResolveInfo info = mApps.get(position);
            i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));

            return i;
        }


        public final int getCount() {
            return mApps.size();
        }

        public final Object getItem(int position) {
            return mApps.get(position);
        }

        public final long getItemId(int position) {
            return position;
        }
    }

}



[grid_1.xml]

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myGrid"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"
   
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"
   
    android:gravity="center"
    />

'old > API_Demo' 카테고리의 다른 글

Views_ImageButton  (0) 2010.04.21
Views_Grid_Photo Grid  (0) 2010.04.20
Views_Gallery2_People  (0) 2010.04.20
Views_Gallery_Photos  (0) 2010.04.20
Views_Focus_Internal Selection  (0) 2010.04.19
Posted by jazzlife
,

Views_Gallery2_People

old/API_Demo 2010. 4. 20. 10:37

[Gallery2.java]

public class Gallery2 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gallery_2);

        // Get a cursor with all people
        Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
        startManagingCursor(c);
       
        SpinnerAdapter adapter = new SimpleCursorAdapter(this,
        // Use a template that displays a text view
                android.R.layout.simple_gallery_item,
                // Give the cursor to the list adatper
                c,
                // Map the NAME column in the people database to...
                new String[] {People.NAME},
                // The "text1" view defined in the XML template
                new int[] { android.R.id.text1 });

        Gallery g = (Gallery) findViewById(R.id.gallery);
        g.setAdapter(adapter);
    }

}


 

[gallery_2.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="10dip"
        android:text="@string/gallery_2_text"
    />

    <Gallery android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:spacing="16dp"
    />

</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_Grid_Photo Grid  (0) 2010.04.20
Views_Grid_Icon Grid  (0) 2010.04.20
Views_Gallery_Photos  (0) 2010.04.20
Views_Focus_Internal Selection  (0) 2010.04.19
Views_Focus_Circular  (0) 2010.04.19
Posted by jazzlife
,

Views_Gallery_Photos

old/API_Demo 2010. 4. 20. 10:35

[Gallery1.java]

public class Gallery1 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gallery_1);

        // Reference the Gallery view
        Gallery g = (Gallery) findViewById(R.id.gallery);
        // Set the adapter to our custom adapter (below)
        g.setAdapter(new ImageAdapter(this));
       
        // Set a item click listener, and just Toast the clicked position
        g.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v, int position, long id) {
                Toast.makeText(Gallery1.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });
       
        // We also want to show context menu for longpressed items in the gallery
        registerForContextMenu(g);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        menu.add(R.string.gallery_2_text);

    }
   
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
        Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT).show();
        return true;
    }

    public class ImageAdapter extends BaseAdapter {
        int mGalleryItemBackground;

       
        public ImageAdapter(Context c) {
            mContext = c;
            // See res/values/attrs.xml for the <declare-styleable> that defines
            // Gallery1.
            TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);
            mGalleryItemBackground = a.getResourceId(
                    R.styleable.Gallery1_android_galleryItemBackground, 0);
            a.recycle();
        }

        public int getCount() {
            return mImageIds.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;

        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(mContext);

            i.setImageResource(mImageIds[position]);
            i.setScaleType(ImageView.ScaleType.FIT_XY);
            i.setLayoutParams(new Gallery.LayoutParams(136, 88));
           
            // The preferred Gallery item background
            i.setBackgroundResource(mGalleryItemBackground);
           
            return i;
        }

        private Context mContext;

        private Integer[] mImageIds = {
                R.drawable.gallery_photo_1,
                R.drawable.gallery_photo_2,
                R.drawable.gallery_photo_3,
                R.drawable.gallery_photo_4,
                R.drawable.gallery_photo_5,
                R.drawable.gallery_photo_6,
                R.drawable.gallery_photo_7,
                R.drawable.gallery_photo_8
        };
    }

}



[gallery_1.xml]

<Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
/>

'old > API_Demo' 카테고리의 다른 글

Views_Grid_Icon Grid  (0) 2010.04.20
Views_Gallery2_People  (0) 2010.04.20
Views_Focus_Internal Selection  (0) 2010.04.19
Views_Focus_Circular  (0) 2010.04.19
Views_Focus_Horizontal  (0) 2010.04.19
Posted by jazzlife
,

[InternalSelectionFocus.java]

public class InternalSelectionFocus extends Activity {

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

        final LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.HORIZONTAL);
        layout.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,
                ViewGroup.LayoutParams.FILL_PARENT));

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,
                ViewGroup.LayoutParams.FILL_PARENT, 1);

        final InternalSelectionView leftColumn = new InternalSelectionView(this, 5, "left column");
        leftColumn.setLayoutParams(params);
        leftColumn.setPadding(10, 10, 10, 10);
        layout.addView(leftColumn);

        final InternalSelectionView middleColumn = new InternalSelectionView(this, 5, "middle column");
        middleColumn.setLayoutParams(params);
        middleColumn.setPadding(10, 10, 10, 10);
        layout.addView(middleColumn);

        final InternalSelectionView rightColumn = new InternalSelectionView(this, 5, "right column");
        rightColumn.setLayoutParams(params);
        rightColumn.setPadding(10, 10, 10, 10);
        layout.addView(rightColumn);

        setContentView(layout);
    }
}

'old > API_Demo' 카테고리의 다른 글

Views_Gallery2_People  (0) 2010.04.20
Views_Gallery_Photos  (0) 2010.04.20
Views_Focus_Circular  (0) 2010.04.19
Views_Focus_Horizontal  (0) 2010.04.19
Views_Focus_Vertical  (0) 2010.04.19
Posted by jazzlife
,

Views_Focus_Circular

old/API_Demo 2010. 4. 19. 13:55

[Focus3.java]

public class Focus3 extends Activity {
    private Button mTopButton;
    private Button mBottomButton;

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

        setContentView(R.layout.focus_3);

        mTopButton = (Button) findViewById(R.id.top);
        mBottomButton = (Button) findViewById(R.id.bottom);
    }

    public Button getTopButton() {
        return mTopButton;
    }

    public Button getBottomButton() {
        return mBottomButton;
    }
}



[focus_3.xml]

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip">

    <Button android:id="@+id/top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:nextFocusDown="@+id/bottom"
        android:text="@string/focus_3_top"/>

    <Button android:id="@+id/right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:nextFocusLeft="@+id/left"
        android:text="@string/focus_3_right"/>

    <Button android:id="@+id/bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:nextFocusUp="@+id/top"
        android:text="@string/focus_3_bottom"/>

    <Button android:id="@+id/left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:nextFocusRight="@+id/right"
        android:text="@string/focus_3_left"/>

</RelativeLayout>

'old > API_Demo' 카테고리의 다른 글

Views_Gallery_Photos  (0) 2010.04.20
Views_Focus_Internal Selection  (0) 2010.04.19
Views_Focus_Horizontal  (0) 2010.04.19
Views_Focus_Vertical  (0) 2010.04.19
Views_Expandable_Simple Adapter  (0) 2010.04.19
Posted by jazzlife
,

[focus_2.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="horizontal">

    <Button android:id="@+id/leftButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="3dip"
        android:text="@string/focus_2_left"
        android:nextFocusRight="@+id/rightButton"/>  <!-- jump over middle! -->

    <Button android:id="@+id/centerButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="3dip"
        android:text="@string/focus_2_jump" />

    <Button android:id="@+id/rightButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="3dip"
        android:text="@string/focus_2_right"/>
   
</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_Focus_Internal Selection  (0) 2010.04.19
Views_Focus_Circular  (0) 2010.04.19
Views_Focus_Vertical  (0) 2010.04.19
Views_Expandable_Simple Adapter  (0) 2010.04.19
Views_Expandable_Cursor [contact]  (0) 2010.04.19
Posted by jazzlife
,

Views_Focus_Vertical

old/API_Demo 2010. 4. 19. 13:48

[focus_1.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="vertical">

    <TextView android:id="@+id/txtStatus"
        android:text="@string/focus_1_message"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" />

    <ListView android:id="@+id/rssListView"
        android:background="#7700CC00"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" />

   <WebView android:id="@+id/rssWebView"
        android:background="#77CC0000"
        android:layout_height="50dip"
        android:layout_width="fill_parent"
        android:focusable="false" />

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/focus_1_placeholder" />

</LinearLayout>



[Focus1.java]

public class Focus1 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.focus_1);

        WebView webView = (WebView) findViewById(R.id.rssWebView);
        webView.loadData(
                        "<html><body>Can I focus?<br /><a href=\"#\">No I cannot!</a>.</body></html>",
                        "text/html", "utf-8");

        ListView listView = (ListView) findViewById(R.id.rssListView);
        listView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                new String[] {"Ars Technica", "Slashdot", "GameKult"}));
    }
}

'old > API_Demo' 카테고리의 다른 글

Views_Focus_Circular  (0) 2010.04.19
Views_Focus_Horizontal  (0) 2010.04.19
Views_Expandable_Simple Adapter  (0) 2010.04.19
Views_Expandable_Cursor [contact]  (0) 2010.04.19
Views_Expandable_Custom Adapter  (0) 2010.04.19
Posted by jazzlife
,

[ExpandableList3.java]

public class ExpandableList3 extends ExpandableListActivity {
    private static final String NAME = "NAME";
    private static final String IS_EVEN = "IS_EVEN";
   
    private ExpandableListAdapter mAdapter;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
        List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();
        for (int i = 0; i < 20; i++) {
            Map<String, String> curGroupMap = new HashMap<String, String>();
            groupData.add(curGroupMap);
            curGroupMap.put(NAME, "Group " + i);
            curGroupMap.put(IS_EVEN, (i % 2 == 0) ? "This group is even" : "This group is odd");
           
            List<Map<String, String>> children = new ArrayList<Map<String, String>>();
            for (int j = 0; j < 15; j++) {
                Map<String, String> curChildMap = new HashMap<String, String>();
                children.add(curChildMap);
                curChildMap.put(NAME, "Child " + j);
                curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd");
            }
            childData.add(children);
        }
       
        // Set up our adapter
        mAdapter = new SimpleExpandableListAdapter(
                this,
                groupData,
                android.R.layout.simple_expandable_list_item_1,
                new String[] { NAME, IS_EVEN },
                new int[] { android.R.id.text1, android.R.id.text2 },
                childData,
                android.R.layout.simple_expandable_list_item_2,
                new String[] { NAME, IS_EVEN },
                new int[] { android.R.id.text1, android.R.id.text2 }
                );
        setListAdapter(mAdapter);
    }

}

'old > API_Demo' 카테고리의 다른 글

Views_Focus_Horizontal  (0) 2010.04.19
Views_Focus_Vertical  (0) 2010.04.19
Views_Expandable_Cursor [contact]  (0) 2010.04.19
Views_Expandable_Custom Adapter  (0) 2010.04.19
Views_Custom  (0) 2010.04.19
Posted by jazzlife
,

[ExpandableList2.java]

public class ExpandableList2 extends ExpandableListActivity {
    private int mGroupIdColumnIndex;
   
    private String mPhoneNumberProjection[] = new String[] {
            People.Phones._ID, People.Phones.NUMBER
    };

   
    private ExpandableListAdapter mAdapter;
   

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

        // Query for people
        Cursor groupCursor = managedQuery(People.CONTENT_URI,
                new String[] {People._ID, People.NAME}, null, null, null);

        // Cache the ID column index
        mGroupIdColumnIndex = groupCursor.getColumnIndexOrThrow(People._ID);

        // Set up our adapter
        mAdapter = new MyExpandableListAdapter(groupCursor,
                this,
                android.R.layout.simple_expandable_list_item_1,
                android.R.layout.simple_expandable_list_item_1,
                new String[] {People.NAME}, // Name for group layouts
                new int[] {android.R.id.text1},
                new String[] {People.NUMBER}, // Number for child layouts
                new int[] {android.R.id.text1});
        setListAdapter(mAdapter);
    }

    public class MyExpandableListAdapter extends SimpleCursorTreeAdapter {

        public MyExpandableListAdapter(Cursor cursor, Context context, int groupLayout,
                int childLayout, String[] groupFrom, int[] groupTo, String[] childrenFrom,
                int[] childrenTo) {
            super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childrenFrom,
                    childrenTo);
        }

        @Override
        protected Cursor getChildrenCursor(Cursor groupCursor) {
            // Given the group, we return a cursor for all the children within that group

            // Return a cursor that points to this contact's phone numbers
            Uri.Builder builder = People.CONTENT_URI.buildUpon();
            ContentUris.appendId(builder, groupCursor.getLong(mGroupIdColumnIndex));
            builder.appendEncodedPath(People.Phones.CONTENT_DIRECTORY);
            Uri phoneNumbersUri = builder.build();

            // The returned Cursor MUST be managed by us, so we use Activity's helper
            // functionality to manage it for us.
            return managedQuery(phoneNumbersUri, mPhoneNumberProjection, null, null, null);
        }

    }
}

'old > API_Demo' 카테고리의 다른 글

Views_Focus_Vertical  (0) 2010.04.19
Views_Expandable_Simple Adapter  (0) 2010.04.19
Views_Expandable_Custom Adapter  (0) 2010.04.19
Views_Custom  (0) 2010.04.19
Views_Controls_LightTheme  (0) 2010.04.05
Posted by jazzlife
,

Views_Custom

old/API_Demo 2010. 4. 19. 12:16

[custom_view_1.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res/com.example.android.apis"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
   
    <com.example.android.apis.view.LabelView
            android:background="@drawable/red"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            app:text="Red"/>
   
    <com.example.android.apis.view.LabelView
            android:background="@drawable/blue"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            app:text="Blue" app:textSize="20dp"/>
   
    <com.example.android.apis.view.LabelView
            android:background="@drawable/green"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            app:text="Green" app:textColor="#ffffffff" />

</LinearLayout>



[LabelView.java]

package com.example.android.apis.view;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

import com.example.android.apis.R;

public class LabelView extends View {
    private Paint mTextPaint;
    private String mText;
    private int mAscent;


public LabelView(Context context) {
        super(context);
        initLabelView();
    }

public LabelView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initLabelView();

         // xml의 attrs를 LabelView 이름으로 가져온다.        
       TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.LabelView);

       // text를 가져와서 s에 setText
       CharSequence s = a.getString(R.styleable.LabelView_text);
        if (s != null) {
            setText(s.toString());
        }

       // color 가져온다. (default값도 설정)
       setTextColor(a.getColor(R.styleable.LabelView_textColor, 0xFF000000));

        // textSize 가져온다.
        int textSize = a.getDimensionPixelOffset(R.styleable.LabelView_textSize, 0);
        if (textSize > 0) {
            setTextSize(textSize);
        }

         //가져온 typedarray 해제
         a.recycle();
    }

    private final void initLabelView() {
        mTextPaint = new Paint();
        mTextPaint.setAntiAlias(true);    // edge 부분을 부드럽게
        mTextPaint.setTextSize(16);
        mTextPaint.setColor(0xFF000000);
        setPadding(3, 3, 3, 3);
    }

public void setText(String text) {
        mText = text;
        requestLayout();    // 갱신       
        invalidate();          // draw 갱신
    }

public void setTextSize(int size) {
        mTextPaint.setTextSize(size);
        requestLayout();    //  갱신
        invalidate();          // draw 갱신
    }

public void setTextColor(int color) {
        mTextPaint.setColor(color);
        invalidate();   // draw 갱신
    }

    // store measure width & height
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        setMeasuredDimension(measureWidth(widthMeasureSpec),
                measureHeight(heightMeasureSpec));
    }

private int measureWidth(int measureSpec) {
        int result = 0;
        int specMode = MeasureSpec.getMode(measureSpec);
        int specSize = MeasureSpec.getSize(measureSpec);

        if (specMode == MeasureSpec.EXACTLY) {
            result = specSize;
        } else {
            result = (int) mTextPaint.measureText(mText) + getPaddingLeft()
                    + getPaddingRight();
            if (specMode == MeasureSpec.AT_MOST) {
                result = Math.min(result, specSize);
            }
        }

        return result;
    }


    private int measureHeight(int measureSpec) {
        int result = 0;
        int specMode = MeasureSpec.getMode(measureSpec);
        int specSize = MeasureSpec.getSize(measureSpec);

        mAscent = (int) mTextPaint.ascent();
        if (specMode == MeasureSpec.EXACTLY) {

            result = specSize;
        } else {

            result = (int) (-mAscent + mTextPaint.descent()) + getPaddingTop()
                    + getPaddingBottom();
            if (specMode == MeasureSpec.AT_MOST) {

                result = Math.min(result, specSize);
            }
        }
        return result;
    }

    // text 그리기    
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawText(mText, getPaddingLeft(), getPaddingTop() - mAscent, mTextPaint);
    }
}

'old > API_Demo' 카테고리의 다른 글

Views_Expandable_Cursor [contact]  (0) 2010.04.19
Views_Expandable_Custom Adapter  (0) 2010.04.19
Views_Controls_LightTheme  (0) 2010.04.05
Views_Chronometer  (0) 2010.04.05
View_Buttons  (0) 2010.04.05
Posted by jazzlife
,
[Manifest.xml]

        <activity android:name=".view.Controls1"
                android:label="Views/Controls/1. Light Theme"
                android:theme="@android:style/Theme.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.SAMPLE_CODE" />
            </intent-filter>
        </activity>

'old > API_Demo' 카테고리의 다른 글

Views_Expandable_Custom Adapter  (0) 2010.04.19
Views_Custom  (0) 2010.04.19
Views_Chronometer  (0) 2010.04.05
View_Buttons  (0) 2010.04.05
View_AutoComplete_MultipleItems  (0) 2010.04.02
Posted by jazzlife
,

Views_Chronometer

old/API_Demo 2010. 4. 5. 14:06

[ChonometerDemo.java]

Chronometer mChronometer;

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

        setContentView(R.layout.chronometer);

        Button button;

        mChronometer = (Chronometer) findViewById(R.id.chronometer);

        // Watch for button clicks.
        button = (Button) findViewById(R.id.start);
        button.setOnClickListener(mStartListener);

        button = (Button) findViewById(R.id.stop);
        button.setOnClickListener(mStopListener);

        button = (Button) findViewById(R.id.reset);
        button.setOnClickListener(mResetListener);

        button = (Button) findViewById(R.id.set_format);
        button.setOnClickListener(mSetFormatListener);

        button = (Button) findViewById(R.id.clear_format);
        button.setOnClickListener(mClearFormatListener);
    }

    View.OnClickListener mStartListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.start();
        }
    };

    View.OnClickListener mStopListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.stop();
        }
    };

    View.OnClickListener mResetListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setBase(SystemClock.elapsedRealtime());
        }
    };

    View.OnClickListener mSetFormatListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setFormat("Formatted time (%s)");
        }
    };

    View.OnClickListener mClearFormatListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setFormat(null);
        }
    };



[

'old > API_Demo' 카테고리의 다른 글

Views_Custom  (0) 2010.04.19
Views_Controls_LightTheme  (0) 2010.04.05
View_Buttons  (0) 2010.04.05
View_AutoComplete_MultipleItems  (0) 2010.04.02
View_AutoComplete_ContactsWithHint  (0) 2010.04.02
Posted by jazzlife
,

View_Buttons

old/API_Demo 2010. 4. 5. 14:04

[buttons_1.xml]

        <!-- Regular sized buttons -->
        <Button android:id="@+id/button_normal"
            android:text="@string/buttons_1_normal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!-- Small buttons -->
        <Button android:id="@+id/button_small"
            style="?android:attr/buttonStyleSmall"
            android:text="@string/buttons_1_small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ToggleButton android:id="@+id/button_toggle"
            android:text="@string/buttons_1_toggle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

'old > API_Demo' 카테고리의 다른 글

Views_Controls_LightTheme  (0) 2010.04.05
Views_Chronometer  (0) 2010.04.05
View_AutoComplete_MultipleItems  (0) 2010.04.02
View_AutoComplete_ContactsWithHint  (0) 2010.04.02
View_AutoComplete_Contacts  (0) 2010.04.02
Posted by jazzlife
,

[AutoComplete6.java]

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete_6);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
        MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.edit);
        textView.setAdapter(adapter);
        textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }

    static final String[] COUNTRIES = new String[] {
    "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
    "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
    "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",.... };
}



[autocomplete_6.xml]

        <MultiAutoCompleteTextView android:id="@+id/edit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

'old > API_Demo' 카테고리의 다른 글

Views_Chronometer  (0) 2010.04.05
View_Buttons  (0) 2010.04.05
View_AutoComplete_ContactsWithHint  (0) 2010.04.02
View_AutoComplete_Contacts  (0) 2010.04.02
View_AutoComplete_Scroll  (0) 2010.04.02
Posted by jazzlife
,

[AutoComplete5.java]

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete_5);

        ContentResolver content = getContentResolver();
        Cursor cursor = content.query(Contacts.People.CONTENT_URI,
                PEOPLE_PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER);
        AutoComplete4.ContactListAdapter adapter =
                new AutoComplete4.ContactListAdapter(this, cursor);

        AutoCompleteTextView textView = (AutoCompleteTextView)
                findViewById(R.id.edit);
        textView.setAdapter(adapter);
    }



[autocomplete_5.xml]

        <AutoCompleteTextView android:id="@+id/edit"
            android:completionThreshold="1"
            android:completionHint="@string/autocomplete_5_hint"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

'old > API_Demo' 카테고리의 다른 글

View_Buttons  (0) 2010.04.05
View_AutoComplete_MultipleItems  (0) 2010.04.02
View_AutoComplete_Contacts  (0) 2010.04.02
View_AutoComplete_Scroll  (0) 2010.04.02
View_AutoComplete_ScreenBottom  (0) 2010.04.02
Posted by jazzlife
,

[AutoComplete4.java]

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete_4);

        ContentResolver content = getContentResolver();
        Cursor cursor = content.query(Contacts.People.CONTENT_URI,
                PEOPLE_PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER);
        ContactListAdapter adapter = new ContactListAdapter(this, cursor);

        AutoCompleteTextView textView = (AutoCompleteTextView)
                findViewById(R.id.edit);
        textView.setAdapter(adapter);
    }

    // XXX compiler bug in javac 1.5.0_07-164, we need to implement Filterable
    // to make compilation work
    public static class ContactListAdapter extends CursorAdapter implements Filterable {
        public ContactListAdapter(Context context, Cursor c) {
            super(context, c);
            mContent = context.getContentResolver();
        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            final LayoutInflater inflater = LayoutInflater.from(context);
            final TextView view = (TextView) inflater.inflate(
                    android.R.layout.simple_dropdown_item_1line, parent, false);
            view.setText(cursor.getString(5));
            return view;
        }

        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            ((TextView) view).setText(cursor.getString(5));
        }

        @Override
        public String convertToString(Cursor cursor) {
            return cursor.getString(5);
        }

        @Override
        public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
            if (getFilterQueryProvider() != null) {
                return getFilterQueryProvider().runQuery(constraint);
            }

            StringBuilder buffer = null;
            String[] args = null;
            if (constraint != null) {
                buffer = new StringBuilder();
                buffer.append("UPPER(");
                buffer.append(Contacts.ContactMethods.NAME);
                buffer.append(") GLOB ?");
                args = new String[] { constraint.toString().toUpperCase() + "*" };
            }

            return mContent.query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION,
                    buffer == null ? null : buffer.toString(), args,
                    Contacts.People.DEFAULT_SORT_ORDER);
        }

        private ContentResolver mContent;       
    }

    private static final String[] PEOPLE_PROJECTION = new String[] {
        Contacts.People._ID,
        Contacts.People.PRIMARY_PHONE_ID,
        Contacts.People.TYPE,
        Contacts.People.NUMBER,
        Contacts.People.LABEL,
        Contacts.People.NAME,
    };
}



[autocomplete_4.xml]

 <AutoCompleteTextView android:id="@+id/edit"
            android:completionThreshold="1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>


 

'old > API_Demo' 카테고리의 다른 글

View_AutoComplete_MultipleItems  (0) 2010.04.02
View_AutoComplete_ContactsWithHint  (0) 2010.04.02
View_AutoComplete_Scroll  (0) 2010.04.02
View_AutoComplete_ScreenBottom  (0) 2010.04.02
View_AutoComplete_ScreenTop  (0) 2010.04.02
Posted by jazzlife
,

[autocomplete_3.xml]

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
.
.

</ScrollView>


 

'old > API_Demo' 카테고리의 다른 글

View_AutoComplete_ContactsWithHint  (0) 2010.04.02
View_AutoComplete_Contacts  (0) 2010.04.02
View_AutoComplete_ScreenBottom  (0) 2010.04.02
View_AutoComplete_ScreenTop  (0) 2010.04.02
Views_Animation_Shake  (0) 2010.03.26
Posted by jazzlife
,

[AutoComplete2.java]

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete_2);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line,
                AutoComplete1.COUNTRIES);
        AutoCompleteTextView textView = (AutoCompleteTextView)
                findViewById(R.id.edit);
        textView.setAdapter(adapter);
    }



[autocomplete_2.xml]

        <AutoCompleteTextView android:id="@+id/edit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

'old > API_Demo' 카테고리의 다른 글

View_AutoComplete_Contacts  (0) 2010.04.02
View_AutoComplete_Scroll  (0) 2010.04.02
View_AutoComplete_ScreenTop  (0) 2010.04.02
Views_Animation_Shake  (0) 2010.03.26
Views_Animation_Push  (0) 2010.03.26
Posted by jazzlife
,

[AutoComplete1.java]

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete_1);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
        AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit);
        textView.setAdapter(adapter);
    }


static final String[] COUNTRIES = new String[] {
 "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
 "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",... }


[audocomplete_1.xml]

        <AutoCompleteTextView android:id="@+id/edit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>


'old > API_Demo' 카테고리의 다른 글

View_AutoComplete_Scroll  (0) 2010.04.02
View_AutoComplete_ScreenBottom  (0) 2010.04.02
Views_Animation_Shake  (0) 2010.03.26
Views_Animation_Push  (0) 2010.03.26
Views_Animation_Interpolators  (0) 2010.03.26
Posted by jazzlife
,