/*

5k桌面 源码

作者:基哥

AndroidManifest.xml重要配置:

壁纸背景(三选一):

android:theme="@android:style/Theme.Wallpaper"

android:theme="@android:style/Theme.Wallpaper.NoTitleBar"

android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"

*/

package l.l;

import android.app.*;

import android.content.*;

import android.content.pm.*;

import android.os.*;

import android.view.*;

import android.widget.*;

import android.widget.AdapterView.*;

import java.util.*;

import android.util.*;

import android.net.*;

import android.provider.*;

public class l extends Activity {

GridView g;

private List apps;

int w,h,p;

Context c;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setTheme(android.R.style.Theme_Wallpaper_NoTitleBar);

/*

在AndroidManifest.xml添加

android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"

再用setTheme,就型成一种启动效果

*/

if(Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT)

{

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)

{

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

getWindow().setStatusBarColor(0x00000000);

}

c=this;

DisplayMetrics metric = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metric);

w = metric.widthPixels;

h = metric.heightPixels;

p=w/60;

apps = getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER), 0);

g = new GridView(this);

g.setAdapter(new AppsAdapter());

g.setOnItemLongClickListener(new OnItemLongClickListener(){

@Override

public boolean onItemLongClick(AdapterView> a, View v, int i, long l)

{

String s=apps.get(i).activityInfo.packageName;

Intent localIntent = new Intent();

localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

if (Build.VERSION.SDK_INT >= 9) {

localIntent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

localIntent.setData(Uri.fromParts("package", s, null));

} else if (Build.VERSION.SDK_INT <= 8) {

localIntent.setAction(Intent.ACTION_VIEW);

localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");

localIntent.putExtra("com.android.settings.ApplicationPkgName", s);

}

startActivity(localIntent);

return true;

}

});

g.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> adapterView, View view, int i, long l) {

ActivityInfo a=apps.get(i).activityInfo;

startActivity(new Intent().setComponent(new ComponentName(a.packageName, a.name)));

}

});

g.setNumColumns(5);

addContentView(g,new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));

}

public class AppsAdapter extends BaseAdapter {

@Override

public int getCount() {

return apps.size();

}

@Override

public Object getItem(int i) {

return apps.get(i);

}

@Override

public long getItemId(int i) {

return i;

}

@Override

public View getView(int in, View view, ViewGroup viewGroup) {

app a;

if(view == null){

a = new app();

ImageView i  ;

LinearLayout l;

TextView t;

l=new LinearLayout(c);

l.setOrientation(LinearLayout.VERTICAL);

l.setGravity(Gravity.CENTER);

i = new ImageView(c);

i.setPadding(p,p,p,p);

i.setScaleType(ImageView.ScaleType.FIT_CENTER);

i.setLayoutParams(new GridView.LayoutParams(w/6, w/6));

l.addView(i);

t=new TextView(c);

t.setMaxLines(1);

t.setGravity(Gravity.CENTER);

l.addView(t);

a.i=i;

a.t=t;

view=l;

view.setTag(a);

} else {

a=(app) view.getTag();

}

ActivityInfo app=apps.get(in).activityInfo;

a.i.setImageDrawable(app.loadIcon(getPackageManager()));

a.t.setText(app.loadLabel(getPackageManager()));

return view;

}

class app

{

ImageView i;

TextView t;

}

}

}

android开发桌面源码,android launcher 源码 自己开发启动桌面相关推荐

  1. 【学以致用】android功能实现9---Launcher之AS中,在Launcher源码中增加google负一屏的实现方法

    负一屏是相对于正常屏幕而言,正常屏幕是指桌面上用户用于摆放图标(也可以编辑图标位置)的屏幕,根据用户喜欢可以有一个或多个屏幕.在一些手机当中,包括苹果和安卓,在正常屏幕的最左边一屏,我们再往左滑,会出 ...

  2. android做拨号程序代码,Android开发手机拨号程序实现实例源码介绍

    Android开发手机拨号程序实现实例源码介绍,在上一篇文章中,我们实现了第一个程序:helloWorld,并成功测试完成.还给大家介绍了Android项目结构和说明.现在写一个手机拨号程序: 首先, ...

  3. Android之图片加载框架Picasso源码解析

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/76645535 本文出自:[顾林海的博客] 个人开发的微信小程序,目前功 ...

  4. 这份1307页Android面试全套真题解析,源码+原理+手写框架

    前言 前不久,几个朋友聚会,谈到了现在的后辈,我就说起了那个大三就已经拿到网易offer的小学弟. 这个学弟是00后,专升本进入我们学校的.进来后就非常努力,每次上课都是第一个到教室的,每次都是坐第一 ...

  5. Android View体系(五)从源码解析View的事件分发机制

    Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源码解析Sc ...

  6. android ctrl 左键鼠标左键直接打开xml文件夹,设置Android Studio通过Ctrl+左键查看源码...

    开始学习android的时候希望能点进系统提供的控件中查看源码,但是实际操作发现,看到的每个源文件方法都是抛出的Exception,所以想要设置成可以直接查看具体实现,记录下我自己的操作方法. 1.首 ...

  7. Android Studio打包原生Java影视APP源码

    用Android Studio环境,搭建一个原生Java影视APP源码,各种功能也不错,就是有一点小bug Android Studio安装环境如果有人不会的,可能百度一下,看情况可能下次会出一个An ...

  8. Android最新版支付宝钱包的实例源码

    Android应用支付宝支付究竟是什么做的呢,相信很多朋友对这个问题感兴趣,如果你要是做过了话你可能就会觉得,支付宝也就这么回事,但是对于没做过的朋友可能会觉得,很高大上,觉得做出来的人好叼哦,其实接 ...

  9. [附源码]计算机毕业设计Python+uniapp基于Android的大学生健康管理APPo1q3h(程序+源码+LW+远程部署)

    [附源码]计算机毕业设计Python+uniapp基于Android的大学生健康管理APPo1q3h(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目 ...

  10. Android多页蒙版遮罩引导功能(源码+解析)

    #Android多页蒙版遮罩引导功能(源码+解析) 需求:博主前段时间做的教育类型APP,需要引导用户(低龄化小朋友),播放器的播放,页面可以左右滑动,以及右上方进入答题卡入口(小朋友都是很聪明的,引 ...

最新文章

  1. linux 创建crontab文件位置,[基础教程]linux系统的crontab计划任务添加和删除
  2. 程序员的自我救赎---13.1:职场招聘与面试心得
  3. 七自由度车辆稳定性数学模型和simulink求解
  4. 这个图形的体积有限,但表面积却是无穷大
  5. Jpeglib使用指南, 各种压缩包的压缩和解压方法, 开源社区分裂史
  6. php 递归实现无限极分类和排序_PHP实现选择排序
  7. linux下gimp工具栏,Gimp使用小技巧
  8. Nginx开启访问日志记录
  9. github第一次使用--创建hello-world
  10. 围观了张一鸣近10年的微博,我整理了这231条干货
  11. 3dXXX Android,Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi
  12. 微信群发助手怎么使用?微信群发助手怎么发?
  13. Android Studio打造一个小说阅读App
  14. A Complete ActiveX Web Control Tutorial
  15. 微软宣布 IE 浏览器将于 6 月 16 日正式退役,你对它有哪些回忆?
  16. 记一次导入环信聊天demo的过程
  17. centos7启动dhcp失败_CentOS7中DHCP配置
  18. 妹子说我没有表情包?没关系通过python爬虫爬取表情
  19. scp 解除链接问题的两个解决方案
  20. ES6-ES11笔记(1)

热门文章

  1. Spring boot优点
  2. Java多线程两种实现方式的对比
  3. php yii框架和laravel,yii2跟laravel的区别是什么?
  4. sql 新建发布 找不到存储过程_pgRouting教程九:使用GeoServer发布WMS/WFS接口
  5. 【开机自启】属于你的个性化!八步完成喜欢的软件开机自启!
  6. 求求你不要手写redis 缓存set,get
  7. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined
  8. 蓝桥杯-c++_ch04_02_修正版(java)
  9. 【LeetCode每周算法】零钱兑换
  10. 闰年的判断方法_C语言100题 判断这一天是一年中的第几天 壁纸 火影