继承ViewGroup的MyWorkspace类

public class MyWorkSpace extends ViewGroup
{
private static final String TAG = "MyWorkSpace";
private Scroller mScroller;
private VelocityTracker mVelocityTracker;
private int mCurScreen;
private int mDefaultScreen = 0;
private static final int TOUCH_STATE_REST = 0;
private static final int TOUCH_STATE_SCROLLING = 1;
private static final int SNAP_VELOCITY = 600;
private int mTouchState = TOUCH_STATE_REST;
private int mTouchSlop;
private float mLastMotionX;
private float mLastMotionY;
public Handler myHandler = new Handler()
{
public void handleMessage(Message msg)
{
int param1 = 0;
int width = MainActivity.tvCursor.getWidth();
if (msg.what == 0x123)
{
param1 = msg.arg1;
}
TranslateAnimation ta = new TranslateAnimation(
(param1 - 1) * width, param1 * width, 0, 0);
ta.setDuration(100);
ta.setFillEnabled(true);
ta.setFillAfter(true);
MainActivity.tvCursor.setAnimation(ta);
}
};
public MyWorkSpace(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
// TODO Auto-generated constructor stub
}
public MyWorkSpace(Context context)
{
super(context);
// TODO Auto-generated constructor stub
}
public MyWorkSpace(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
mScroller = new Scroller(context);
mCurScreen = mDefaultScreen;
mTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
if (changed)
{
int childLeft = 0;
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++)
{
final View childView = getChildAt(i);
if (childView.getVisibility() != View.GONE)
{
final int childWidth = childView.getMeasuredWidth();
childView.layout(childLeft,
0,
childLeft + childWidth,
childView.getMeasuredHeight());
childLeft += childWidth;
}
}
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
Log.e(TAG, "onMeasure");
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final int width = MeasureSpec.getSize(widthMeasureSpec);
final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
if (widthMode != MeasureSpec.EXACTLY)
{
throw new IllegalStateException(
"ScrollLayout only canmCurScreen run at EXACTLY mode!");
}
final int heightMode = MeasureSpec.getMode(heightMeasureSpec);
if (heightMode != MeasureSpec.EXACTLY)
{
throw new IllegalStateException(
"ScrollLayout only can run at EXACTLY mode!");
}
// The children are given the same width and height as the scrollLayout
final int count = getChildCount();
for (int i = 0; i < count; i++)
{
getChildAt(i).measure(widthMeasureSpec, heightMeasureSpec);
}
// Log.e(TAG, "moving to screen "+mCurScreen);
scrollTo(mCurScreen * width, 0);
}
/**
* According to the position of current layout scroll to the destination
* page.
*/
public void snapToDestination()
{
final int screenWidth = getWidth();
final int destScreen = (getScrollX() + screenWidth / 2) / screenWidth;
snapToScreen(destScreen);
}
public void snapToScreen(int whichScreen)
{
Log.e("", "snapToScreen============>" + whichScreen);
if (whichScreen < MainActivity.totalPageNum)
{
Message msg = new Message();
msg.what = 0x123;
msg.arg1 = whichScreen;
myHandler.sendMessage(msg);
}
// get the valid layout page
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
if (getScrollX() != (whichScreen * getWidth()))
{
final int delta = whichScreen * getWidth() - getScrollX();
mScroller.startScroll(getScrollX(),
0,
delta,
0,
Math.abs(delta) * 2);
mCurScreen = whichScreen;
invalidate(); // Redraw the layout
}
}
public void setToScreen(int whichScreen)
{
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
mCurScreen = whichScreen;
scrollTo(whichScreen * getWidth(), 0);
}
public int getCurScreen()
{
return mCurScreen;
}
@Override
public void computeScroll()
{
// TODO Auto-generated method stub
if (mScroller.computeScrollOffset())
{
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
postInvalidate();
}
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
// TODO Auto-generated method stub
if (mVelocityTracker == null)
{
mVelocityTracker = VelocityTracker.obtain();
}
mVelocityTracker.addMovement(event);
final int action = event.getAction();
final float x = event.getX();
final float y = event.getY();
switch (action)
{
case MotionEvent.ACTION_DOWN:
Log.e(TAG, "event down!");
if (!mScroller.isFinished())
{
mScroller.abortAnimation();
}
mLastMotionX = x;
Log.e("", "============>x=" + x + ",y=" + y);
break;
case MotionEvent.ACTION_MOVE:
int deltaX = (int)(mLastMotionX - x);
mLastMotionX = x;
scrollBy(deltaX, 0);
break;
case MotionEvent.ACTION_UP:
Log.e(TAG, "event : up");
// if (mTouchState == TOUCH_STATE_SCROLLING) {
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000);
int velocityX = (int)velocityTracker.getXVelocity();
Log.e(TAG, "velocityX:" + velocityX);
if (velocityX > SNAP_VELOCITY && mCurScreen > 0)
{
// Fling enough to move left
Log.e(TAG, "snap left");
snapToScreen(mCurScreen - 1);
}
else if (velocityX < -SNAP_VELOCITY
&& mCurScreen < getChildCount() - 1)
{
// Fling enough to move right
Log.e(TAG, "snap right");
snapToScreen(mCurScreen + 1);
}
else
{
snapToDestination();
}
if (mVelocityTracker != null)
{
mVelocityTracker.recycle();
mVelocityTracker = null;
}
// }
mTouchState = TOUCH_STATE_REST;
break;
case MotionEvent.ACTION_CANCEL:
mTouchState = TOUCH_STATE_REST;
break;
}
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
// TODO Auto-generated method stub
Log.e(TAG, "onInterceptTouchEvent-slop:" + mTouchSlop);
final int action = ev.getAction();
if ((action == MotionEvent.ACTION_MOVE)
&& (mTouchState != TOUCH_STATE_REST))
{
return true;
}
final float x = ev.getX();
final float y = ev.getY();
switch (action)
{
case MotionEvent.ACTION_MOVE:
final int xDiff = (int)Math.abs(mLastMotionX - x);
if (xDiff > mTouchSlop)
{
mTouchState = TOUCH_STATE_SCROLLING;
}
break;
case MotionEvent.ACTION_DOWN:
mLastMotionX = x;
mLastMotionY = y;
mTouchState = mScroller.isFinished() ? TOUCH_STATE_REST
: TOUCH_STATE_SCROLLING;
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
mTouchState = TOUCH_STATE_REST;
break;
}
return mTouchState != TOUCH_STATE_REST;
}
}

MainActivity入口类

public class MainActivity extends Activity implements OnClickListener
{
private LinearLayout mainlayout;
private RelativeLayout rl_main;
private ImageView btnCall = null;
private ImageView btnSms = null;
private ImageView btnContact = null;
private ImageView btnWebView = null;
private GridView gvApp1;
private GridView gvApp2;
private GridView gvApp3;
private GridView gvApp4;
private GridView gvApp5;
private com.huawei.ccs.MyWorkSpace myWorkSpace;
private List<AppInfo> data1 = new ArrayList<AppInfo>();
private List<AppInfo> data2 = new ArrayList<AppInfo>();
private List<AppInfo> data3 = new ArrayList<AppInfo>();
private List<AppInfo> data4 = new ArrayList<AppInfo>();
private List<AppInfo> data5 = new ArrayList<AppInfo>();
public static TextView tvCursor;
public LinearLayout ll_cursor;
private LinearLayout webViewLayout; //webView布局
private LinearLayout controllLayout; //底部控制条布局
private WebView currentWebView;
static int totalPageNum;
private static Map<Integer, LinearLayout> WebView_Map = new HashMap<Integer, LinearLayout>(); //存放WebView Map
private static int WebView_Index = 0; //WebView_Map key
private static final int BUTTON_BACK = 0;
private static final int BUTTON_FORWARD = 1;
private static final int BUTTON_REFRESH = 2;
private static final int BUTTON_HOME = 3;
private static final int BUTTON_OTHER = 4;
private static final int WEBVIEW_ID = 888;
private int[] icons = new int[] {R.drawable.a, R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.a,
R.drawable.b, R.drawable.c, R.drawable.a, R.drawable.b,
R.drawable.c, R.drawable.a, R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k,
R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
R.drawable.l, R.drawable.m, R.drawable.n, R.drawable.o,
R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
R.drawable.l, R.drawable.m, R.drawable.n, R.drawable.o,
R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
R.drawable.l, R.drawable.m, R.drawable.n, R.drawable.o,
R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainlayout = (LinearLayout)this.findViewById(R.id.MainLayout);
ll_cursor = (LinearLayout)findViewById(R.id.ll_cursor);
btnCall = (ImageView)findViewById(R.id.call_btn);
btnSms = (ImageView)findViewById(R.id.sms_btn);
btnContact = (ImageView)findViewById(R.id.contact_btn);
btnWebView = (ImageView)findViewById(R.id.menu_btn);
myWorkSpace = (com.huawei.ccs.MyWorkSpace)findViewById(R.id.workspace);
rl_main = (RelativeLayout)findViewById(R.id.rl_main);
gvApp1 = (GridView)findViewById(R.id.gv_app);
loadApps();
gvApp1.setAdapter(new AppAdapter(this, data1));
totalPageNum = 1;
if (icons.length > 12)
{
View view2 = LayoutInflater.from(this)
.inflate(R.layout.app_gridview, null);
gvApp2 = (GridView)view2.findViewById(R.id.gv_app);
gvApp2.setAdapter(new AppAdapter(this, data2));
myWorkSpace.addView(view2);
totalPageNum++;
}
if (icons.length > 24)
{
View view3 = LayoutInflater.from(this)
.inflate(R.layout.app_gridview, null);
gvApp3 = (GridView)view3.findViewById(R.id.gv_app);
gvApp3.setAdapter(new AppAdapter(this, data3));
myWorkSpace.addView(view3);
totalPageNum++;
}
if (icons.length > 36)
{
View view4 = LayoutInflater.from(this)
.inflate(R.layout.app_gridview, null);
gvApp4 = (GridView)view4.findViewById(R.id.gv_app);
gvApp4.setAdapter(new AppAdapter(this, data4));
myWorkSpace.addView(view4);
totalPageNum++;
}
if (icons.length > 48)
{
View view5 = LayoutInflater.from(this)
.inflate(R.layout.app_gridview, null);
gvApp5 = (GridView)view5.findViewById(R.id.gv_app);
gvApp5.setAdapter(new AppAdapter(this, data5));
myWorkSpace.addView(view5);
totalPageNum++;
}
int cursorWidth = 480 / totalPageNum;
tvCursor = new TextView(this);
tvCursor.setLayoutParams(new LayoutParams(cursorWidth, 2));
tvCursor.setBackgroundColor(Color.WHITE);
ll_cursor.removeAllViews();
ll_cursor.addView(tvCursor);
btnCall.setOnClickListener(this);
btnSms.setOnClickListener(this);
btnContact.setOnClickListener(this);
btnWebView.setOnClickListener(this);
}
public void loadApps()
{
AppInfo appInfo = null;
for (int i = 0; i < icons.length; i++)
{
appInfo = new AppInfo();
appInfo.setAppLabel("App" + (i + 1));
appInfo.setAppIcon(icons[i]);
if (i < 12)
{
data1.add(appInfo);
}
else if (i < 24)
{
data2.add(appInfo);
}
else if (i < 36)
{
data3.add(appInfo);
}
else if (i < 48)
{
data4.add(appInfo);
}
else if (i < 60)
{
data5.add(appInfo);
}
}
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
//phone call
case R.id.call_btn:
Intent intent = new Intent(Intent.ACTION_DIAL);
startActivity(intent);
break;
//send sms
case R.id.sms_btn:
Uri smsToUri = Uri.parse("smsto:");
Intent mIntent = new Intent(
android.content.Intent.ACTION_SENDTO, smsToUri);
startActivity(mIntent);
break;
//goto contact
case R.id.contact_btn:
Intent contactIntent = new Intent();
contactIntent.setAction(Intent.ACTION_VIEW);
contactIntent.setData(ContactsContract.Contacts.CONTENT_URI);
startActivity(contactIntent);
break;
//go cube
case R.id.menu_btn:
//                Intent intent1 = new Intent(MainActivity.this,
//                        MyWebViewControll.class);
//                startActivity(intent1);
//生成WebView主布局
rl_main.setVisibility(View.GONE);
mainlayout.setVisibility(View.VISIBLE);
webViewLayout = new LinearLayout(this);
webViewLayout.setOrientation(LinearLayout.VERTICAL);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
webViewLayout.setLayoutParams(lp);
//生成WebView布局中的WebView
currentWebView = new WebView(this);
currentWebView.setId(WEBVIEW_ID);
LayoutParams lp1 = new LayoutParams(LayoutParams.FILL_PARENT,
700);
currentWebView.setLayoutParams(lp1);
currentWebView.loadUrl("www.baidu.com");
//WebView主布局加载WebView
webViewLayout.addView(currentWebView);
//界面主布局加载ebView主布局
mainlayout.addView(webViewLayout);
//WebView主布局加载底部控制条
initControllView();
break;
case BUTTON_BACK:
if (currentWebView.canGoBack())
currentWebView.goBack();
else
Toast.makeText(MainActivity.this,
"已经是最后一页了!!!",
Toast.LENGTH_SHORT).show();
break;
case BUTTON_FORWARD:
if (currentWebView.canGoForward())
currentWebView.goForward();
else
Toast.makeText(MainActivity.this,
"已经是第一页了!!!",
Toast.LENGTH_SHORT).show();
break;
case BUTTON_REFRESH:
currentWebView.reload();
break;
case BUTTON_HOME:
toHome();
break;
case BUTTON_OTHER:
WebView_Map.put(WebView_Index, webViewLayout);
toWebViewById(WebView_Index);
break;
default:
break;
}
}
//初始化控制条
private void initControllView()
{
controllLayout = new LinearLayout(this);
controllLayout.setOrientation(LinearLayout.HORIZONTAL);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, 100);
controllLayout.setLayoutParams(lp);
controllLayout.setPadding(15, 15, 0, 0);
createButton("QianJin", BUTTON_BACK);
createButton("HouTui", BUTTON_FORWARD);
createButton("ShuaXin", BUTTON_REFRESH);
createButton("ZhuYe", BUTTON_HOME);
createButton("DuoChuangKou", BUTTON_OTHER);
webViewLayout.addView(controllLayout);
}
private void createButton(String name, int bid)
{
Button btn = new Button(this);
btn.setText(name);
LayoutParams lp = new LayoutParams(90, 50);
btn.setLayoutParams(lp);
btn.setId(bid);
btn.setOnClickListener(this);
controllLayout.addView(btn);
}
//返回主页
private void toHome()
{
rl_main.setVisibility(View.VISIBLE);
mainlayout.setVisibility(View.GONE);
//        webViewLayout.setVisibility(View.GONE);
WebView_Index++;
}
//根据ID跳转WebView
public void toWebViewById(int index)
{
rl_main.setVisibility(View.GONE);
mainlayout.setVisibility(View.VISIBLE);
webViewLayout = WebView_Map.get(index);
currentWebView = (WebView)webViewLayout.findViewById(WEBVIEW_ID);
webViewLayout.setVisibility(View.VISIBLE);
}
}

AppAdapter.java

public class AppAdapter extends BaseAdapter
{
private Context myContext;
private List<AppInfo> appInfo;
public AppAdapter(Context myContext, List<AppInfo> appInfo)
{
super();
this.myContext = myContext;
this.appInfo = appInfo;
}
public int getCount()
{
if (null != appInfo)
{
return appInfo.size();
}
return 0;
}
public AppInfo getItem(int position)
{
return appInfo.get(position);
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
MyHolder myholder = null;
if (null == view)
{
view = LayoutInflater.from(myContext)
.inflate(R.layout.grad_view_item, null);
myholder = new MyHolder();
myholder.tv = (TextView)view.findViewById(R.id.widget_label);
myholder.iv = (ImageView)view.findViewById(R.id.widget_icon);
view.setTag(myholder);
}
else
{
myholder = (MyHolder)view.getTag();
}
myholder.tv.setText(appInfo.get(position).getAppLabel());
myholder.iv.setImageResource(appInfo.get(position).getAppIcon());
return view;
}
private class MyHolder
{
ImageView iv;
TextView tv;
}
}

AppInfo.java

public class AppInfo
{
/**
* widget名字
*/
private String appLabel;
/**
* widget图标id
*/
private int appIcon;
public String getAppLabel()
{
return appLabel;
}
public void setAppLabel(String appLabel)
{
this.appLabel = appLabel;
}
public int getAppIcon()
{
return appIcon;
}
public void setAppIcon(int appIcon)
{
this.appIcon = appIcon;
}
}

主要布局文件:main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/rl_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_x="0px"
android:layout_y="0px"
android:orientation="vertical" >
<com.huawei.ccs.MyWorkSpace
android:id="@+id/workspace"
android:layout_width="fill_parent"
android:layout_height="730px"
android:background="#000" >
<include
android:id="@+id/cell1"
layout="@layout/app_gridview" />
</com.huawei.ccs.MyWorkSpace>
<include
android:id="@+id/bottom_view"
layout="@layout/bottom" />
<LinearLayout
android:id="@+id/ll_cursor"
android:layout_width="480px"
android:layout_height="2px"
android:layout_above="@id/bottom_view"
android:background="#bbf" >
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/MainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_x="0px"
android:layout_y="0px"
android:background="#000"
android:orientation="vertical"
android:visibility="gone" >
</LinearLayout>
</AbsoluteLayout>

bottom.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bottom_layout"
android:layout_width="match_parent"
android:layout_height="85px"
android:layout_alignParentBottom="true"
android:background="#000"
android:gravity="center"
>
<ImageView
android:id="@+id/call_btn"
android:layout_width="52px"
android:layout_height="52px"
android:layout_marginLeft="54px"
android:layout_marginRight="54px"
android:src="@drawable/call" />
<ImageView
android:id="@+id/sms_btn"
android:layout_width="52px"
android:layout_height="52px"
android:layout_marginRight="55px"
android:src="@drawable/sms" />
<ImageView
android:id="@+id/contact_btn"
android:layout_width="52px"
android:layout_height="52px"
android:layout_marginRight="55px"
android:src="@drawable/contact" />
<ImageView
android:id="@+id/menu_btn"
android:layout_width="59px"
android:layout_height="59px"
android:layout_marginRight="54px"
android:src="@drawable/menu" />
</LinearLayout>

grad_view_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/widget_icon"
android:layout_width="90px"
android:layout_height="90px"
android:layout_marginBottom="5px"
android:layout_marginLeft="15px"
android:layout_marginRight="15px"
android:src="@drawable/a" />
<TextView
android:id="@+id/widget_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="15px"
android:text="finder"
android:textColor="#ffffff"
android:textSize="20px" />
</LinearLayout>

Android桌面壁纸相关推荐

  1. android桌面壁纸显示不全屏显示,手机壁纸怎么全屏 全屏显示手机壁纸方法

    使用安卓手机的朋友都知道,安卓手机更换的壁纸是一个比较大的壁纸,对于一张背景壁纸图片我们手机界面看到的只有一部分,只有通过左右划屏才可以变换的看完整张桌面背面图片,那么如何在手机界面中看到一个完整的桌 ...

  2. android桌面壁纸以及快捷方式(上)

    改变壁纸 Android使用wallpaperManager来改变壁纸,所调用的接口方法如下: 开发动态壁纸 Android界面是动态的,由程序实时控制的,开发步骤如下: ①开发一个子类继承Wallp ...

  3. 微软android桌面壁纸,微软桌面(com.microsoft.launcher) - 6.210402.0.960830 - 应用 - 酷安

    权限信息 · com.microsoft.launcher.permission.SETTINGS_ACCESS · android.permission.FOREGROUND_SERVICE · c ...

  4. Android桌面三:手机壁纸

    Android桌面三:手机壁纸 手机壁纸 手机壁纸分为静态壁纸和动态壁纸,设置方式也不同 一:静态壁纸 Android允许使用WallpaperManager来改变手机壁纸,提供了如下方法进行设置: ...

  5. android 锁屏壁纸和桌面壁纸的设置实现

    在flyme系统下面,有个类是可以用来设置桌面壁纸的,叫做WallpaperManager,调用该类的setBitmap(),即可.但是锁屏壁纸的设置却无法直接调用这个类的某些方法. 需要用到反射调用 ...

  6. android 双屏壁纸,分享50个漂亮的双屏桌面壁纸资源(上篇)

    我喜欢根据季节更换桌面壁纸,换上一张清爽的桌面壁纸,心情也会变得舒畅.今天这篇文章和大家分享50张大尺寸的精美双屏桌面壁纸,来挑一张喜欢的换上吧:) Available Resolution: 256 ...

  7. android 7官方壁纸百度云,LOL动态原画桌面壁纸(1~7弹)

    LOL动态原画桌面壁纸(1~7弹)是一份lol壁纸原画_英雄联盟壁纸原画,喜欢玩LOL的朋友也会将自己的电脑桌面放上自己喜欢的英雄壁纸,小编这里将LOL动态原画桌面壁纸合集起来,上传到了网盘,分享给大 ...

  8. 50张非常精美的Apple主题桌面壁纸(上篇)

    今天这篇文章向大家分享50张非常精美的Apple主题桌面壁纸,果粉们赶紧来下载啊. Blue Apple wallpaper Apple Lawn .wallpaper. by ~VertigoStu ...

  9. iapp获取桌面壁纸

    //iapp获取桌面壁纸代码 cls("android.app.WallpaperManager", 壁纸类) javax(壁纸管理器, null, 壁纸类, "getI ...

  10. 安卓桌面壁纸_梅糖桌面安卓手机版下载-梅糖桌面app官方版下载v2.2安卓版

    梅糖桌面app官方版是一款非常好的桌面壁纸,这款软件上的壁纸非常多,并且会即时更新,并且与很多主题桌面不一样的是,这款软件很多安卓机型的电纸书都是可以安装的,支持各项自定义,让你可以选择多样化的主题, ...

最新文章

  1. 【leetcode】1051. Height Checker
  2. sql server中将一个字段根据某个字符拆分成多个字段显示
  3. Session 丢失问题
  4. mysql优化之query优化
  5. 《C和指针》——数组的奇怪形式
  6. Clion配置Toolchains
  7. String和QString之间的转化----可避免出现中文乱码的现象
  8. php验证支付回调,php对微信支付回调处理的方法(合集)
  9. 自定义异常 java_Java自定义异常–用户定义的异常
  10. r语言折线图_R语言基础入门视频教程——语法篇(完结)
  11. Cisco dynamips模拟器安装指南
  12. 最新VS2012破解 序列号,vs2012旗舰版密钥序列号【收藏】
  13. OFFICE Excel表格中常用的vba代码集锦
  14. ns3学习之ns3模拟基本流程
  15. 十年程序人生——转自黎活明
  16. Vue 电商后台管理项目阶段性总结
  17. Dell R640服务器centos系统增加万兆网卡设置
  18. java正则中REGEX = [\u4e00-\u9fa5]+是什么意思
  19. 宝洁公司收购德国达姆施塔特默克集团的消费者健康业务
  20. 线性反馈移位寄存器(LSFR)

热门文章

  1. 海信电视 LED55K370 升级固件总结【含固件下载地址】
  2. MT7621芯片技术资料分析,MT7621数据表原理图
  3. 关于React Hooks使用
  4. 最强战队 | 三维视觉、SLAM方向全球顶尖实验室汇总
  5. Notepad++下载
  6. 思科路由器防火墙如何配置的方法
  7. 不动产房屋结构代码_不动产单元设定与代码编制规则
  8. Win10 安装IE11失败错误代码0x80070490(未解决)
  9. Excel:仅选择可见的单元格
  10. android 距离测量工具,尺子距离测量app