安卓开发实验报告目录一、页面跳转二、长按图标抖动以及显示删除一、页面跳转功能:通过点击button实现2个activity之间的跳转。
1.设置监听器监听点击button2.使用intent传输数据完整代码1.ui_test.javapublicclass UI_Test extends Activity {@Overrideprotectedvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.incident_activity_1);Button bt = (Button)findViewById(R.id.login);bt.setOnClickListener(new OnClickListener());}class OnClickListener implements View.OnClickListener{publicvoid onClick(View v){EditText name = (EditText)findViewById();EditText password = (EditText)findViewById(R.id.password);Bundle data=new Bundle();data.putString("name", name.getText().toString());data.putString("password", password.getText().toString());Intent intent = new Intent(UI_Test.this,UI_Result.class);intent.putExtras(data);startActivity(intent);}}2.ui_result.javapublicclass UI_Result extends Activity {@Overrideprotectedvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.incident_activity_2);TextView name = (TextView)findViewById(Show);TextView password = (TextView)findViewById(R.id.passwordShow);Intent intent=getIntent();Bundle result = intent.getExtras();name.setText("您的用户名为: "+result.getString("name"));password.setText("您的密码为: "+result.getString("password"));}}3.activity_1.xml<?xml version="1.0"encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="请输入您的信息"android:textSize="20sp"/><TableRowandroid:id="@+id/tableRow1"android:layout_width="fill_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="用户名"android:textSize="16sp"/><EditTextandroid:id="@+id/name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请填写登录用户名"android:selectAllOnFocus="true"><requestFocus/></EditText></TableRow><TableRowandroid:id="@+id/tableRow2"android:layout_width="fill_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="请输入密码"android:textSize="16sp"/><EditTextandroid:id="@+id/password"android:layout_width="fill_parent"android:layout_height="wrap_content"android:password="true"android:selectAllOnFocus="true"><requestFocus/></EditText></TableRow><TableRowandroid:id="@+id/tableRow3"android:layout_width="fill_parent"android:layout_height="wrap_content"><Buttonandroid:id="@+id/login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="登录"android:textSize="16sp"/></TableRow></TableLayout>4.activity_2.xml<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/nameShow"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="18sp"/><TextViewandroid:id="@+id/passwordShow"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="18sp"/></LinearLayout>二、长按图标抖动以及显示删除功能:将app列举在界面上,并且长按图标使图标进行抖动以及显示删除图标。
1.初始化一个gridview的适配器2.通过不停转动图标实现图标的抖动以及添加删除图标3.添加监听器实现长按图标使图标抖动及显示删除完整代码1.main_activity.javapublicclass MainActivity extends Activity {private PackageManager mPackageManager;private GridView mAppGrid;private List<PackageInfo>mAppList;private Drawable mColorDrawable;private GridViewAdapter mAdapter = null;privatestaticint mAppState = 0;privatestaticfinalint APP_DELFINISHED = 0x1;public MainActivity() {// TODO Auto-generated constructor stub}@Overridepublicboolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK&&event.getRepeatCount() == 0){ if(mAppState == 1){//resetAllAppIcon();refreshAppList();returntrue;}}returnsuper.onKeyDown(keyCode, event);}@Overrideprotectedvoid onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);mAppList = new ArrayList<PackageInfo>();getAppList(mAppList);setContentView(yout.activity_main);mAppGrid = (GridView) findViewById(R.id.app_list_grid);mAppGrid.setNumColumns (calculatorNumColumn());mAdapter = new GridViewAdapter(mAppList,this,mPackageManager);mAppGrid.setAdapter(mAdapter);mAppGrid.setOnItemClickListener(clickListener);mAppGrid.setOnItemLongClickListener(itemLongClickListener);//mAppGrid.setOnTouchListener(new PicOnTouchListener());}@Overrideprotectedvoid onResume() {// TODO Auto-generated method stubsuper.onResume();}@Overrideprotectedvoid onPause() {// TODO Auto-generated method stubsuper.onPause();}@Overrideprotectedvoid onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}OnItemClickListener clickListener = new OnItemClickListener(){ @Overridepublicvoid onItemClick(AdapterView<?> parent, View view,int position,long id) {if(mAppState == 1){PackageInfo info = mAppList.get(position);//ActivityUri packageURI = Uri.parse("package:" +info.applicationInfo.packageName);Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);startActivityForResult(uninstallIntent,APP_DELFINISHED);}}};@Overrideprotectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);}OnItemLongClickListener itemLongClickListener =new OnItemLongClickListener(){@Overridepublicboolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {// TODO Auto-generated method stubanimAllAppIcon();returntrue;}};privatevoid getAppList(List<PackageInfo> list){mPackageManager = getPackageManager();List<PackageInfo> packs = mPackageManager.getInstalledPackages(0);if(packs != null&&packs.size() > 0){for(PackageInfo info: packs){if((info.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)== 0 &&(info.applicationInfo.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)==0) {list.add(info);}}}}privatevoid refreshAppList(){mAppList.clear();getAppList(mAppList);mAdapter.setData(mAppList);mAdapter.notifyDataSetChanged();mAppState = 0;}privatevoid animAllAppIcon(){int nCount = mAppGrid.getChildCount();mColorDrawable = mAppGrid.getSelector();mAppGrid.setSelector(new ColorDrawable(Color.TRANSPARENT));for(int i = 0 ;i<nCount; i ++){View v = mAppGrid.getChildAt(i);RelativeLayout layout;Animation shake;//if(i % 2 == 0){shake = AnimationUtils.loadAnimation(MainActivity.this, R.anim.icon_anim_left);shake.reset();shake.setFillAfter(true);//}//else{//shake = AnimationUtils.loadAnimation(//MainActivity.this, R.anim.icon_anim_right);//shake.reset();//shake.setFillAfter(true);//}v.startAnimation(shake);layout = (RelativeLayout)v.findViewById(R.id.view_delete);layout.setVisibility(View.VISIBLE);}mAppState = 1;}privatevoid resetAllAppIcon(){int nCount = mAppGrid.getChildCount();mAppGrid.setSelector(mColorDrawable);for(int i = 0 ;i<nCount; i ++){View v = mAppGrid.getChildAt(i);RelativeLayout layout;v.clearAnimation();layout = (RelativeLayout)v.findViewById(R.id.view_delete);layout.setVisibility(View.INVISIBLE);}mAppState = 0;}privateint calculatorNumColumn(){int nCol = 5;android.view.Display display = getWindowManager().getDefaultDisplay();int widthPIX = display.getWidth();finalfloat scale = getResources().getDisplayMetrics().density;nCol = (int)(widthPIX/scale/80);return nCol;}/*private class PicOnTouchListener implements OnTouchListener{@OverridepublicbooleanonTouch(View v, MotionEvent event){if(mAppState == 1){resetAllAppIcon();}return true;}} */}2.GridViewAdapterpublicclass GridViewAdapter extends BaseAdapter {List<PackageInfo>mAppList = null;PackageManager mPackageManager = null;View mView = null;Context mContext = null;public GridViewAdapter(List<PackageInfo> list, Contextcontext,PackageManager manager) {mAppList = list;mContext = context;mPackageManager = manager;}@Overridepublicint getCount() {return mAppList.size();}@Overridepublic Object getItem(int position) {return mAppList.get(position);}@Overridepubliclong getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) { ImageViewi;TextView t;if (convertView == null) {convertView =LayoutInflater.from(mContext).inflate(yout.app_list_item, null);}i = (ImageView) convertView.findViewById(R.id.img_appicon);t = (TextView) convertView.findViewById(R.id.txt_appname);i.setScaleType(ImageView.ScaleType.FIT_CENTER);PackageInfo info = mAppList.get(position);i.setImageDrawable(info.applicationInfo.loadIcon(mPackageManager));t.setText(info.applicationInfo.loadLabel(mPackageManager));return convertView;}publicvoid setData(List<PackageInfo> list){mAppList = list;}}3.activity_main.xml<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="20dip"android:layout_marginBottom="20dip"android:layout_marginLeft="10dip"android:layout_marginRight="10dip"android:orientation="vertical"><GridViewandroid:id="@+id/app_list_grid"android:layout_width="match_parent"android:layout_height="match_parent"android:verticalSpacing="0dip"android:horizontalSpacing="0dip"android:numColumns="5"></GridView></LinearLayout>4.app_list_item.xml<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:layout_width="wrap_content"<FrameLayoutandroid:id="@+id/icon_framelayout"android:layout_centerInParent="true"android:layout_width="wrap_content"android:layout_height="wrap_content"><LinearLayoutandroid:id="@+id/view_app_info"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:layout_marginTop="5dip"android:layout_marginBottom="5dip"android:layout_marginLeft="5dip"android:layout_marginRight="5dip"android:visibility="visible"><ImageViewandroid:id="@+id/img_appicon"android:layout_width="@android:dimen/app_icon_size"android:layout_height="@android:dimen/app_icon_size"android:contentDescription="@null"android:layout_gravity="center_horizontal"android:src="@drawable/ic_launcher"/><TextViewandroid:id="@+id/txt_appname"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="12sp"android:maxLines="2"android:layout_gravity="center_horizontal"/></LinearLayout><RelativeLayoutandroid:id="@+id/view_delete"android:layout_width="fill_parent"android:layout_height="fill_parent"android:visibility="invisible"><ImageViewandroid:id="@+id/cross_icon"android:layout_width="24dp"android:layout_height="24dp"android:layout_alignParentRight="true"android:padding="0dp"android:src="@drawable/ic_delete"/> </RelativeLayout></FrameLayout></LinearLayout>。