android开发桌面源码,android launcher 源码 自己开发启动桌面
/*
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 源码 自己开发启动桌面相关推荐
- 【学以致用】android功能实现9---Launcher之AS中,在Launcher源码中增加google负一屏的实现方法
负一屏是相对于正常屏幕而言,正常屏幕是指桌面上用户用于摆放图标(也可以编辑图标位置)的屏幕,根据用户喜欢可以有一个或多个屏幕.在一些手机当中,包括苹果和安卓,在正常屏幕的最左边一屏,我们再往左滑,会出 ...
- android做拨号程序代码,Android开发手机拨号程序实现实例源码介绍
Android开发手机拨号程序实现实例源码介绍,在上一篇文章中,我们实现了第一个程序:helloWorld,并成功测试完成.还给大家介绍了Android项目结构和说明.现在写一个手机拨号程序: 首先, ...
- Android之图片加载框架Picasso源码解析
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/76645535 本文出自:[顾林海的博客] 个人开发的微信小程序,目前功 ...
- 这份1307页Android面试全套真题解析,源码+原理+手写框架
前言 前不久,几个朋友聚会,谈到了现在的后辈,我就说起了那个大三就已经拿到网易offer的小学弟. 这个学弟是00后,专升本进入我们学校的.进来后就非常努力,每次上课都是第一个到教室的,每次都是坐第一 ...
- Android View体系(五)从源码解析View的事件分发机制
Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源码解析Sc ...
- android ctrl 左键鼠标左键直接打开xml文件夹,设置Android Studio通过Ctrl+左键查看源码...
开始学习android的时候希望能点进系统提供的控件中查看源码,但是实际操作发现,看到的每个源文件方法都是抛出的Exception,所以想要设置成可以直接查看具体实现,记录下我自己的操作方法. 1.首 ...
- Android Studio打包原生Java影视APP源码
用Android Studio环境,搭建一个原生Java影视APP源码,各种功能也不错,就是有一点小bug Android Studio安装环境如果有人不会的,可能百度一下,看情况可能下次会出一个An ...
- Android最新版支付宝钱包的实例源码
Android应用支付宝支付究竟是什么做的呢,相信很多朋友对这个问题感兴趣,如果你要是做过了话你可能就会觉得,支付宝也就这么回事,但是对于没做过的朋友可能会觉得,很高大上,觉得做出来的人好叼哦,其实接 ...
- [附源码]计算机毕业设计Python+uniapp基于Android的大学生健康管理APPo1q3h(程序+源码+LW+远程部署)
[附源码]计算机毕业设计Python+uniapp基于Android的大学生健康管理APPo1q3h(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目 ...
- Android多页蒙版遮罩引导功能(源码+解析)
#Android多页蒙版遮罩引导功能(源码+解析) 需求:博主前段时间做的教育类型APP,需要引导用户(低龄化小朋友),播放器的播放,页面可以左右滑动,以及右上方进入答题卡入口(小朋友都是很聪明的,引 ...
最新文章
- linux 创建crontab文件位置,[基础教程]linux系统的crontab计划任务添加和删除
- 程序员的自我救赎---13.1:职场招聘与面试心得
- 七自由度车辆稳定性数学模型和simulink求解
- 这个图形的体积有限,但表面积却是无穷大
- Jpeglib使用指南, 各种压缩包的压缩和解压方法, 开源社区分裂史
- php 递归实现无限极分类和排序_PHP实现选择排序
- linux下gimp工具栏,Gimp使用小技巧
- Nginx开启访问日志记录
- github第一次使用--创建hello-world
- 围观了张一鸣近10年的微博,我整理了这231条干货
- 3dXXX Android,Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi
- 微信群发助手怎么使用?微信群发助手怎么发?
- Android Studio打造一个小说阅读App
- A Complete ActiveX Web Control Tutorial
- 微软宣布 IE 浏览器将于 6 月 16 日正式退役,你对它有哪些回忆?
- 记一次导入环信聊天demo的过程
- centos7启动dhcp失败_CentOS7中DHCP配置
- 妹子说我没有表情包?没关系通过python爬虫爬取表情
- scp 解除链接问题的两个解决方案
- ES6-ES11笔记(1)
热门文章
- Spring boot优点
- Java多线程两种实现方式的对比
- php yii框架和laravel,yii2跟laravel的区别是什么?
- sql 新建发布 找不到存储过程_pgRouting教程九:使用GeoServer发布WMS/WFS接口
- 【开机自启】属于你的个性化!八步完成喜欢的软件开机自启!
- 求求你不要手写redis 缓存set,get
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined
- 蓝桥杯-c++_ch04_02_修正版(java)
- 【LeetCode每周算法】零钱兑换
- 闰年的判断方法_C语言100题 判断这一天是一年中的第几天 壁纸 火影