吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3787|回复: 1
收起左侧

[其他转载] android launcher 源码 自己开发启动桌面

[复制链接]
djwdj 发表于 2017-12-23 23:56
/*
5k桌面 源码


作者:基哥


AndroidManifest.xml重要配置:
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
壁纸背景(三选一):
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<ResolveInfo> 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;
                }
               
    }
       
}

免费评分

参与人数 1热心值 +1 收起 理由
果汁分妳一半 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

smm800 发表于 2017-12-24 00:18
不明觉厉
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 11:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表