- 浏览: 323308 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (228)
- ArcGis (4)
- UI设计 (32)
- SQLite (7)
- ListView (12)
- Handler_Thread (6)
- XML (5)
- Menu (7)
- TabHost (6)
- Inflater (2)
- Activity (5)
- SDCard (3)
- Dialog (7)
- Spinner (3)
- 设备信息 (2)
- 资源文件 (7)
- 多媒体 (7)
- 图片浏览 (5)
- 工具的使用 (3)
- Animation动画 (7)
- GIS (14)
- 软件发布 (4)
- GPS (2)
- 手机Feature开发 (6)
- 加密解密 (1)
- Time (2)
- JWeb (5)
- SQL (2)
- PhoneGap (3)
- JavaScript (3)
- Object-C入门 (7)
- Oracle (1)
- AutoCompleteTextView (1)
- APN (1)
- IOS开发 (12)
- 数据库工具 (3)
- UITableView (0)
- Arcgis for iOS (1)
最新评论
-
waterM:
...
DBVis 连接数据库配置 -
航空母舰:
上源码吧,差资源,都跑不起来!
ListView_split 分割 -
wade200:
学习了
启动另一个Activity并返回结果(附源码) -
AndLi:
里面的坐标被我写死了啊,你注释掉就可以了
GPS定位 -
kunlinchen2010:
求指教,QQ:446482624
GPS定位
程序管理器(非原创-转载)
public class MainActivity extends Activity implements Runnable, OnItemClickListener, OnClickListener { private static final int SEARCH_APP = 0; private static final int DELETE_APP = 1; GridView gridView; ListView listView; private List<PackageInfo> allpkgInfo; private List<PackageInfo> userpkgInfo;//用户程序 private List<PackageInfo> showpkgInfo;//要显示的程序 private ProgressDialog pd; ImageButton btn2; ImageButton btn1; private boolean allApplication = true; private boolean isListView = false; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); setProgressBarIndeterminateVisibility(true); init(); LayoutAnimationController controller = new LayoutAnimationController( setAnimationMethod(), 1); gridView.setLayoutAnimation(controller);// 设置动画效果 listView.setLayoutAnimation(controller);// 设置动画效果 listView.setCacheColorHint(0); pd = ProgressDialog.show(this, "请稍候...", "正在搜索应用程序...", true, false); Thread t = new Thread(this); t.start(); } private void init() { gridView = (GridView) this.findViewById(R.id.gv_apps); listView = (ListView) this.findViewById(R.id.lv_apps); gridView.setOnItemClickListener(this); listView.setOnItemClickListener(this); btn2 = (ImageButton) this.findViewById(R.id.ib_change_category); btn1 = (ImageButton) this.findViewById(R.id.ib_change_view); btn1.setOnClickListener(this); btn2.setOnClickListener(this); } public void onClick(View v) { switch (v.getId()) { case R.id.ib_change_category:// 显示系统还是显示只安装的 if (allApplication) {//只显示用户安装的 btn2.setImageResource(R.drawable.user); showpkgInfo = userpkgInfo; allApplication = false; MyToast.myToastShow(MainActivity.this, R.drawable.user,"用户安装的程序列表", 2000); } else {//显示所有的 btn2.setImageResource(R.drawable.all); showpkgInfo = allpkgInfo; allApplication = true; MyToast.myToastShow(MainActivity.this, R.drawable.all,"所有程序列表", 2000); } gridView.setAdapter(new GridViewAdapter(MainActivity.this,showpkgInfo)); listView.setAdapter(new ListViewAdapter(MainActivity.this,showpkgInfo)); break; case R.id.ib_change_view:// 显示方式:列表还是网格视图 if (isListView) {// 网格显示 MyToast.myToastShow(MainActivity.this, R.drawable.grids,"网格显示", 2000); btn1.setImageResource(R.drawable.grids); listView.setVisibility(View.GONE); gridView.setVisibility(View.VISIBLE); isListView = false; } else { MyToast.myToastShow(MainActivity.this, R.drawable.list,"列表显示", 2000); btn1.setImageResource(R.drawable.list); gridView.setVisibility(View.GONE); listView.setVisibility(View.VISIBLE); isListView = true; } break; default: break; } } private Handler mHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == SEARCH_APP) { showpkgInfo = allpkgInfo; gridView.setAdapter(new GridViewAdapter(MainActivity.this,showpkgInfo)); listView.setAdapter(new ListViewAdapter(MainActivity.this,showpkgInfo)); pd.dismiss(); setProgressBarIndeterminateVisibility(false); } if (msg.what == DELETE_APP) { System.out.println("Delete App Success!!"); Toast.makeText(MainActivity.this, "卸载成功!", 2000).show(); } } }; // GridView的适配器 class GridViewAdapter extends BaseAdapter { LayoutInflater inflater; List<PackageInfo> pkInfos; public GridViewAdapter(Context context, List<PackageInfo> pkgInfo) { inflater = LayoutInflater.from(context); this.pkInfos = pkgInfo; } public int getCount() { return pkInfos.size(); } public Object getItem(int arg0) { return pkInfos.get(arg0); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { View view = inflater.inflate(R.layout.gv_item, null); TextView tv = (TextView) view.findViewById(R.id.gv_item_appname); ImageView iv = (ImageView) view.findViewById(R.id.gv_item_icon); tv.setText(pkInfos.get(position).applicationInfo.loadLabel(getPackageManager())); iv.setImageDrawable(pkInfos.get(position).applicationInfo.loadIcon(getPackageManager())); return view; } } // ListView的适配器 class ListViewAdapter extends BaseAdapter { LayoutInflater inflater; List<PackageInfo> pkInfos; public ListViewAdapter(Context context, List<PackageInfo> pkgInfo) { inflater = LayoutInflater.from(context); this.pkInfos = pkgInfo; } public int getCount() { return pkInfos.size(); } public Object getItem(int arg0) { return pkInfos.get(arg0); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { View view = inflater.inflate(R.layout.lv_item, null); TextView tv_appname = (TextView) view.findViewById(R.id.lv_item_appname); TextView tv_packagename = (TextView) view.findViewById(R.id.lv_item_packageame); ImageView iv = (ImageView) view.findViewById(R.id.lv_icon); tv_appname.setText(pkInfos.get(position).applicationInfo.loadLabel(getPackageManager())); tv_packagename.setText(pkInfos.get(position).packageName); iv.setImageDrawable(pkInfos.get(position).applicationInfo.loadIcon(getPackageManager())); return view; } } @SuppressWarnings("static-access") @Override public void run() { allpkgInfo = getPackageManager().getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES| PackageManager.GET_ACTIVITIES); userpkgInfo = new ArrayList<PackageInfo>(); for (int i = 0; i < allpkgInfo.size(); i++) { PackageInfo temp = allpkgInfo.get(i); ApplicationInfo appInfo = temp.applicationInfo; boolean flag = false; if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { // Updated system app flag = true; } else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { // Non-system app flag = true; } if (flag) { userpkgInfo.add(temp); } } try { Thread.currentThread().sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } mHandler.sendEmptyMessage(SEARCH_APP); try { Thread.currentThread().sleep(5000); mHandler.sendEmptyMessage(DELETE_APP); } catch (InterruptedException e) { e.printStackTrace(); } } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) { final PackageInfo tempPkInfo = showpkgInfo.get(position); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("选项"); builder.setItems(R.array.choice, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case 0://启动程序 String packageName = tempPkInfo.packageName; ActivityInfo activityInfo = tempPkInfo.activities[0]; if (activityInfo == null) { Toast.makeText(MainActivity.this, "没有任何activity",2000).show(); return; } String activityName = activityInfo.name; Intent intent = new Intent(); intent.setComponent(new ComponentName(packageName,activityName)); startActivity(intent); break; case 1://详细信息 showAppDetail(tempPkInfo); break; case 2://卸载程序 Uri packageUri = Uri.parse("package:"+ tempPkInfo.packageName); Intent deleteIntent = new Intent(); deleteIntent.setAction(Intent.ACTION_DELETE); deleteIntent.setData(packageUri); startActivityForResult(deleteIntent, 0); break; } } }); builder.setNegativeButton("取消", null); builder.create().show(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); allpkgInfo = getPackageManager().getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES| PackageManager.GET_ACTIVITIES); userpkgInfo = new ArrayList<PackageInfo>(); for (int i = 0; i < allpkgInfo.size(); i++) { PackageInfo temp = allpkgInfo.get(i); ApplicationInfo appInfo = temp.applicationInfo; boolean flag = false; if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { // Updated system app flag = true; } else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { // Non-system app flag = true; } if (flag) { userpkgInfo.add(temp); } } if (allApplication) { showpkgInfo = allpkgInfo; } else { showpkgInfo = userpkgInfo; } gridView.setAdapter(new GridViewAdapter(MainActivity.this,showpkgInfo)); listView.setAdapter(new ListViewAdapter(MainActivity.this,showpkgInfo)); } // 详细信息 private void showAppDetail(PackageInfo packageInfo) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("详细信息"); StringBuffer message = new StringBuffer(); message.append("程序名称:"+ packageInfo.applicationInfo.loadLabel(getPackageManager())); message.append("\n 包名:" + packageInfo.packageName); message.append("\n 版本号:" + packageInfo.versionCode); message.append("\n 版本名:" + packageInfo.versionName); builder.setMessage(message.toString()); builder.setIcon(packageInfo.applicationInfo.loadIcon(getPackageManager())); builder.setPositiveButton("确定", null); builder.create().show(); } // AlphaAnimation 控制渐变透明的动画效果 // ScaleAnimation 控制尺寸伸缩的动画效果 // TranslateAnimation 控制画面平移的动画效果 // RotateAnimation 控制画面角度变化的动画效果 // LayoutAnimation 渲染ViewGroup中每个View显示时候的动画效果 private AnimationSet setAnimationMethod() { // 设置动画效果 AnimationSet set = new AnimationSet(false); Animation animation = new AlphaAnimation(0, 1); animation.setDuration(500); set.addAnimation(animation); animation = new TranslateAnimation(1, 13, 10, 50); animation.setDuration(300); set.addAnimation(animation); animation = new RotateAnimation(30, 10); animation.setDuration(300); set.addAnimation(animation); animation = new ScaleAnimation(5, 0, 2, 0); animation.setDuration(300); set.addAnimation(animation); return set; } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#313849"> <LinearLayout android:layout_height="28px" android:layout_width="fill_parent" android:orientation="horizontal" android:gravity="center_vertical" android:paddingLeft="5px" android:background="@drawable/top_bg"> <ImageView android:layout_width="18px" android:layout_height="18px" android:src="@drawable/manage"></ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000" android:textSize="14px" android:text="应用程序"></TextView> </LinearLayout> <GridView android:id="@+id/gv_apps" android:layout_height="fill_parent" android:layout_width="fill_parent" android:numColumns="3" android:horizontalSpacing="10px" android:verticalSpacing="10px" android:listSelector="@drawable/choose_gridview" android:layout_marginTop="28px" android:layout_marginBottom="58px" android:layout_marginLeft="5px" android:layout_marginRight="5px" android:layoutAnimation="@anim/layout_anim"> </GridView> <ListView android:id="@+id/lv_apps" android:layout_width="fill_parent" android:layout_height="fill_parent" android:listSelector="@drawable/choose_listview" android:layout_marginTop="28px" android:layout_marginBottom="58px" android:layout_marginLeft="5px" android:layout_marginRight="5px" android:visibility="gone" android:layoutAnimation="@anim/layout_anim"> </ListView> <RelativeLayout android:layout_width="fill_parent" android:layout_height="58px" android:layout_alignParentBottom="true" android:background="@drawable/bottom_bg"> <ImageButton android:id="@+id/ib_change_view" android:layout_alignParentLeft="true" android:layout_marginLeft="5px" android:layout_marginTop="1px" android:src="@drawable/list" android:layout_width="76px" android:layout_height="54px"></ImageButton> <ImageButton android:id="@+id/ib_change_category" android:layout_alignParentRight="true" android:layout_marginRight="5px" android:layout_marginTop="1px" android:src="@drawable/all" android:layout_width="76px" android:layout_height="54px"></ImageButton> </RelativeLayout> </RelativeLayout>
相关推荐
序并没有结束,我们可以打开windows 任务管理器,可以看到我们的程序仍在执 行。 因为return a.exec();一句表示只要主窗口界面不退出,那么程 序就会一直执行。所以只有用第一种方法,将该语句也放到if 语句中,而在...
企业财务管理--借还款业业务账务处理系统 部门借还款财务系统分析 一:财务借还款分析: 1, 借款,借款人从财务借款,财务录入凭证操作:借:其他...原创源码转载请注明出处;否则将保留追究权利 出门见喜程序源码
系统功能分析 考虑到实际生活中在农产品自主... 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/Alonei6/article/details/137697963
- **配置MyBatis**:创建MyBatis的配置文件,包括数据源、事务管理器、Mapper扫描器等,并编写Mapper接口和对应的XML配置文件。 - **编写业务逻辑**:在Service层定义业务逻辑,通过@Autowired注解注入DAO接口,实现...
SSM项目使用maven-跑腿...版权声明:本文为CSDN博主「项目花园范德彪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/dearmite/article/details/132200779
【原创整理,严禁转载,转载必究】 参考文献 [1]齐 绍洲,段博慧.碳交易政策对企业金融化的影响研究[J].西安交通大学学报(社会科学 版),2022,42(05):63-71. [2]田利辉,王可第.“罪魁祸首”还 是“替罪羊”?——中国式...
3. 在“解决方案资源管理器”中,添加新的C++源文件,例如“DLL_Test.cpp”。在这个文件中,我们将定义导出函数。例如: ```cpp #include "DLL_Test.h" extern "C" __declspec(dllexport) void MyFunction() { //...
原创Matlab通过ODBC的方式调用数据库-Txt2Access.m 以下内容为Matlab中文论坛会员,Godman原创。 如果需要转载,请联系Godman会员: 如有疑问可以邮件联系 tntuyh@163.com Godman 2009.3.30 晚 Good Luck...
标题 "神烦狗与蜗牛的小游戏exe制作(原创是lmm禁止转载)" 暗示这是一款基于2D平面的、由个人原创的游戏程序,其中包含了一个名为"神烦狗"的角色,以及一个互动元素——蜗牛。游戏的核心玩法可能是通过操作神烦狗,在...
之前发布的这个程序在运行过程中在报表过程总出现错误,在查看库存...本程序无版权,可以随意转载! ' ' '谢谢! '程序有任何问题或者好的建议请于本人联系 ';' ’ '我的QQ:396293386 E-mail:zhangleizhb@sogou.com'
4. 在图形设置中,用户需要点击“浏览”按钮,这将打开文件资源管理器,让用户选择需要进行图形优化的应用。 5. 用户需要导航到OBS的安装目录,通常是`C:\Program Files\OBS Studio`。然后,进入`obs-studio\bin`子...
基于mybatis考试管理及...版权声明:本文为CSDN博主「项目花园范德彪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/dearmite/article/details/131799642
最近在项目遇到需要调用斑马打印机打印产品标签,本人使用labview开发组态,目前网络资源都是使用命令管理器调用EXE来实现打印,这种方式对于程序灵活性不强,在网上查找资料labview调用只有一个是用C#二次封装类库...
Windows下FreeSWITCH的...版权声明:本文为CSDN博主「奕奕星空」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/angellee1988/article/details/101615596
4.0.3版本具体更新内容: 1、更新修复WiFi连接问题; 2、更新加密方式,授权方式; ...版权声明:本文为CSDN博主「qq_18434225」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接
>支持物联互动、绑定时间轴、影片开始、结束、指定点发生协议控制灯光、继电器、移动门、窗帘、第三方程序等、十分重要的实用功能 >支持后台集中管理、应该总控主机、上传所有客户段资源和管理 >支持打开第三方程序...
开源的分布式版本控制...版权声明:本文为CSDN博主「轮回的秋」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/donglaoxie/article/details/104453761
Tomcat是一个轻量级的Java应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在Red5项目中,Tomcat通常被用作Web应用服务器,负责处理HTTP请求和动态内容生成。 三、MyEclipse集成 ...