android3新特性+源码实现
fmms
13年前
项目源码:
package com.jsd.demo; import android.app.ActivityGroup; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; public class MainActivity extends ActivityGroup { private Button calendarView,numberPicker,stackVIew,adaViewAnim,popMenu,searchView,notifications; private LinearLayout content; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(); } private void findViewById(){ content = (LinearLayout) findViewById(R.id.content); calendarView = (Button) findViewById(R.id.calendarView); calendarView.setOnClickListener(listener); numberPicker = (Button) findViewById(R.id.numberPicker); numberPicker.setOnClickListener(listener); stackVIew = (Button) findViewById(R.id.stackView); stackVIew.setOnClickListener(listener); adaViewAnim = (Button) findViewById(R.id.adaViewAnim); adaViewAnim.setOnClickListener(listener); popMenu = (Button) findViewById(R.id.popMenu); popMenu.setOnClickListener(listener); searchView = (Button) findViewById(R.id.searchView); searchView.setOnClickListener(listener); notifications = (Button) findViewById(R.id.notifications); notifications.setOnClickListener(listener); } private OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.calendarView: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("calendarView", new Intent(MainActivity.this,CalendarActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; case R.id.numberPicker: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("numberPicker", new Intent(MainActivity.this,NumberPickerActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; case R.id.stackView: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("stackView", new Intent(MainActivity.this,StackViewActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; case R.id.adaViewAnim: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("AdapVIewAnimation", new Intent(MainActivity.this,AdapVIewAnimation.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; case R.id.popMenu: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("popMenu", new Intent(MainActivity.this,PopMenuActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; case R.id.searchView: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("searchView", new Intent(MainActivity.this,SearchViewDemo.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; case R.id.notifications: content.removeAllViews(); content.addView(getLocalActivityManager().startActivity("notifications", new Intent(MainActivity.this,NotificationActvity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); break; } } }; } package com.jsd.demo; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; public class ColorAdapter extends BaseAdapter{ private Context mContext; private int[] mColors; public ColorAdapter(Context c,int[] colors) { mContext = c; mColors = colors; } @Override public int getCount() { return mColors == null ? 0 : mColors.length; } @Override public Object getItem(int position) { return mColors == null ? null : mColors[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { LinearLayout.LayoutParams colorLayoutParams = new LinearLayout.LayoutParams(100,100); LinearLayout colorLayout = new LinearLayout(mContext); colorLayout.setBackgroundColor(mColors[position]); colorLayout.setLayoutParams(colorLayoutParams); return colorLayout; } } package com.jsd.demo; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterViewFlipper; import android.widget.Button; /** * * @author jankey * */ public class AdapVIewAnimation extends Activity{ private int color[] = {Color.CYAN,Color.BLUE,Color.DKGRAY,Color.GREEN,Color.LTGRAY,Color.RED}; private AdapterViewFlipper mAdapterView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.adapter_anim); findViewById(); } private void findViewById(){ mAdapterView = (AdapterViewFlipper) findViewById(R.id.mAdapterViewFlipper); ColorAdapter ca = new ColorAdapter(this, color); mAdapterView.setAdapter(ca); Button piver = (Button) findViewById(R.id.previ); piver.setOnClickListener(listener); Button next = (Button) findViewById(R.id.next); next.setOnClickListener(listener); } private OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.previ: mAdapterView.showPrevious(); break; case R.id.next: mAdapterView.showNext(); break; } } }; } package com.jsd.demo; import android.app.Activity; import android.os.Bundle; import android.widget.CalendarView; import android.widget.Toast; import android.widget.CalendarView.OnDateChangeListener; public class CalendarActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calendarview); findViewById(); } private void findViewById(){ CalendarView calendarView = (CalendarView) findViewById(R.id.calendarView); calendarView.setOnDateChangeListener(new OnDateChangeListener() { @Overridepackage com.jsd.demo; import android.app.Activity; import android.os.Bundle; import android.widget.NumberPicker; import android.widget.Toast; import android.widget.NumberPicker.OnValueChangeListener; public class NumberPickerActivity extends Activity{ private NumberPicker mNp1 = null,mNp2 = null,mNp3 = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.number_picker); findViewById(); } private void findViewById(){ mNp1 = (NumberPicker) findViewById(R.id.numberPicker); mNp1.setLeft(0); mNp1.setMaxValue(24); mNp1.setOnValueChangedListener(new OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { Toast.makeText(NumberPickerActivity.this, picker.getValue()+"hours-", 1).show(); } }); mNp2 = (NumberPicker) findViewById(R.id.numberPicker2); mNp2.setLeft(0); mNp2.setMaxValue(60); mNp2.setOnValueChangedListener(new OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { Toast.makeText(NumberPickerActivity.this, picker.getValue()+"minutes", 1).show(); } }); mNp3 = (NumberPicker) findViewById(R.id.numberPicker3); mNp3.setLeft(0); mNp3.setMaxValue(60); mNp3.setOnValueChangedListener(new OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { Toast.makeText(NumberPickerActivity.this, picker.getValue()+"seconds", 1).show(); } }); } } public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { Toast.makeText(CalendarActivity.this, "年:"+year+"-月:"+month+"-日:"+dayOfMonth, 1).show(); } }); } } package com.jsd.demo; import java.io.InputStream; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class NotificationActvity extends Activity{ private NotificationManager nm = null; private Notification.Builder build = null; private Notification n; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.notifactions); findViewById(); } private void findViewById(){ Button notifications = (Button) findViewById(R.id.notifications); nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); build = new Notification.Builder(NotificationActvity.this); build.setDefaults(Notification.DEFAULT_SOUND); build.setAutoCancel(true); build.setContentTitle("title"); build.setContentText("this is for message!"); InputStream is = getResources().openRawResource(R.drawable.icon); Bitmap bitmap = new BitmapDrawable(is).getBitmap(); build.setLargeIcon(bitmap); // build.setSmallIcon(R.drawable.icon); Intent it = new Intent(this,PopMenuActivity.class); PendingIntent pIntent = PendingIntent.getActivity(this, 0,it,0); build.setContentIntent(pIntent); n = build.getNotification(); notifications.setOnClickListener(listener); } private OnClickListener listener = new OnClickListener() { @Overridepackage com.jsd.demo; import android.app.Activity; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.PopupMenu; import android.widget.Toast; /** * * @author jankey * */ public class PopMenuActivity extends Activity{ PopupMenu popup = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.popumenu); findViewById(); } private void findViewById(){ } public void onPopuButtonClick(View button){ popup = new PopupMenu(this, button); popup.getMenuInflater().inflate(R.menu.popu, popup.getMenu()); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if(item.getTitle().equals("exit")){ popup.dismiss(); }else{ Toast.makeText(PopMenuActivity.this, item.getTitle(), 1).show(); } return true; } }); popup.show(); } } public void onClick(View v) { nm.notify(0, n); Toast.makeText(NotificationActvity.this,"notifications..",0).show(); } }; } package com.jsd.demo; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.view.Window; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SearchView; import android.widget.SearchView.OnQueryTextListener; import android.widget.Toast; /** * * @author jankey * */ public class SearchViewDemo extends Activity implements OnQueryTextListener{ private SearchView mSV; private ListView mList; private final String[] mStr = {"a","b","c","d","蒋","世","德","jankey"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.searchview); findViewById(); } private void findViewById(){ mList = (ListView) findViewById(R.id.list_view); mList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStr)); mList.setTextFilterEnabled(true); mSV = (SearchView) findViewById(R.id.search_view); mSV.setIconifiedByDefault(false); mSV.setOnQueryTextListener(this); mSV.setSubmitButtonEnabled(true); mSV.setQueryHint("Search!"); } @Override public boolean onQueryTextChange(String newText) { if(TextUtils.isEmpty(newText)){ mList.clearTextFilter(); }else{ mList.setFilterText(newText.toString()); } return true; } @Override public boolean onQueryTextSubmit(String query) { Toast.makeText(this, "Search:"+query, 0).show(); return false;package com.jsd.demo; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.StackView; /** * * @author jankey * */ public class StackViewActivity extends Activity{ private int color[] = {Color.BLUE,Color.CYAN,Color.GRAY,Color.GREEN,Color.WHITE}; StackView stackView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.stack_view); findViewById(); } private void findViewById(){ stackView = (StackView) findViewById(R.id.stackView); ColorAdapter ca = new ColorAdapter(this, color); stackView.setAdapter(ca); final Button pre = (Button) findViewById(R.id.previer); pre.setOnClickListener(listener); final Button next = (Button) findViewById(R.id.next); next.setOnClickListener(listener); } private OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.next: stackView.showNext(); break; case R.id.previer: stackView.showPrevious(); break; } } }; } } }
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/search" android:icon="@android:drawable/ic_menu_search" android:title="popu_search" /> <item android:id="@+id/add" android:icon="@android:drawable/ic_menu_add" android:title="add" /> <item android:id="@+id/edit" android:icon="@android:drawable/ic_menu_edit" android:title="edit" > <menu> <item android:id="@+id/share" android:icon="@android:drawable/ic_menu_share" android:title="popu_share" /> </menu> </item> <item android:id="@+id/edit" android:icon="@android:drawable/ic_menu_edit" android:title="popu_edit" /> </menu> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="demo"/> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/calendarView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="calendarView" /> <Button android:id="@+id/numberPicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="numberPicker" /> <Button android:id="@+id/stackView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="stackView" /> <Button android:id="@+id/adaViewAnim" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="adaViewAnim" /> <Button android:id="@+id/popMenu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="popMenu" /> <Button android:id="@+id/searchView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="searchView" /> <Button android:id="@+id/notifications" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="notifications" /> </LinearLayout> <LinearLayout android:id="@+id/content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <AdapterViewFlipper android:id="@+id/mAdapterViewFlipper" android:layout_width="fill_parent" android:layout_height="wrap_content" android:loopViews="true" ></AdapterViewFlipper> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/previ" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="previe" /> <Button android:id="@+id/next" android:layout_width="wrap_content"<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <CalendarView android:id="@+id/calendarView" android:layout_width="700dip" android:layout_height="750dip"<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="日期测试" android:gravity="center_horizontal" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <NumberPicker android:id="@+id/numberPicker" android:layout_width="80dp" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hours" /> <NumberPicker android:id="@+id/numberPicker2" android:layout_width="80dp" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="minutes" /> <NumberPicker android:id="@+id/numberPicker3" android:layout_width="80dp" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="second" /> </LinearLayout> </LinearLayout> /> </LinearLayout> android:layout_height="wrap_content" android:text="next" /> </LinearLayout> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lines" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/notifications" android:text="notifications" /> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:onClick="onPopuButtonClick" android:text="popu_menu_button" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <SearchView android:id="@+id/search_view" android:layout_width="wrap_content" android:layout_height="wrap_content" > </SearchView> <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" ></ListView> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <StackView android:id="@+id/stackView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:loopViews="true" > </StackView> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/previer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="previer" /> <Button android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="next" /> </LinearLayout> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jsd.demo" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="11" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".CalendarActivity"></activity> <activity android:name=".NumberPickerActivity"></activity> <activity android:name=".StackViewActivity"></activity> <activity android:name=".AdapVIewAnimation"></activity> <activity android:name=".PopMenuActivity"></activity> <activity android:name=".SearchViewDemo"></activity> <activity android:name=".NotificationActvity"></activity> </application> </manifest>