安卓开发实验报告目录一、 页面跳转二、 长按图标抖动以及显示删除一、 页面跳转功能:通过点击button实现2个activity之间的跳转1.设置监听器监听点击button2.使用intent传输数据完整代码1.ui_test.javapublic class UI_Test extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.incident_activity_1); Button bt = (Button)findViewById(R.id.login); bt.setOnClickListener(new OnClickListener()); } class OnClickListener implements View.OnClickListener{ public void onClick(View v){ EditText name = (EditText)findViewById(R.id.name); 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.javapublic class UI_Result extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.incident_activity_2); TextView name = (TextView)findViewById(R.id.nameShow); 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 4.activity_2.xml 二、 长按图标抖动以及显示删除功能:将app列举在界面上,并且长按图标使图标进行抖动以及显示删除图标。
1. 初始化一个gridview的适配器 2. 通过不停转动图标实现图标的抖动以及添加删除图标3. 添加监听器实现长按图标使图标抖动及显示删除完整代码1. main_activity.java public class MainActivity extends Activity { private PackageManager mPackageManager; private GridView mAppGrid; private List mAppList; private Drawable mColorDrawable; private GridViewAdapter mAdapter = null; private static int mAppState = 0; private static final int APP_DELFINISHED = 0x1; public MainActivity() { // TODO Auto-generated constructor stub } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ if(mAppState == 1){ //resetAllAppIcon(); refreshAppList(); return true; } } return super.onKeyDown(keyCode, event); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mAppList = new ArrayList(); getAppList(mAppList); setContentView(R.layout.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()); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } OnItemClickListener clickListener = new OnItemClickListener(){ @Override public void onItemClick(AdapterView> parent, View view, int position,long id) { if(mAppState == 1){ PackageInfo info = mAppList.get(position); //Activity Uri packageURI = Uri.parse("package:" + info.applicationInfo.packageName); Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI); startActivityForResult(uninstallIntent,APP_DELFINISHED); } } }; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); } OnItemLongClickListener itemLongClickListener = new OnItemLongClickListener(){ @Override public boolean onItemLongClick(AdapterView> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub animAllAppIcon(); return true; } }; private void getAppList(List list){ mPackageManager = getPackageManager(); List 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); } } } } private void refreshAppList(){ mAppList.clear(); getAppList(mAppList); mAdapter.setData(mAppList); mAdapter.notifyDataSetChanged(); mAppState = 0; } private void 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; } private void 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; } private int calculatorNumColumn(){ int nCol = 5; android.view.Display display = getWindowManager().getDefaultDisplay(); int widthPIX = display.getWidth(); final float scale = getResources().getDisplayMetrics().density; nCol = (int)(widthPIX/scale/80); return nCol; } /*private class PicOnTouchListener implements OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event){ if(mAppState == 1){ resetAllAppIcon(); } return true; } } */ }2. GridViewAdapter public class GridViewAdapter extends BaseAdapter { List mAppList = null; PackageManager mPackageManager = null; View mView = null; Context mContext = null; public GridViewAdapter(List list, Context context,PackageManager manager) { mAppList = list; mContext = context; mPackageManager = manager; } @Override public int getCount() { return mAppList.size(); } @Override public Object getItem(int position) { return mAppList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView i; TextView t; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.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; } public void setData(List list){ mAppList = list; } }3. activity_main.xml 4. app_list_item.xml 。