- 浏览: 13185 次
文章分类
最新评论
package com.cctvp.ui;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import com.cctvp.R;
import com.cctvp.ui.view.AppInfo;
import com.cctvp.ui.view.AppView;
import com.cctvp.ui.view.ClipImageView;
import com.cctvp.ui.view.DragLayer;
import com.cctvp.ui.view.EventCenter;
import com.cctvp.ui.view.MyUtils;
import com.cctvp.ui.view.Workspace;
import com.cctvp.ui.view.WorkspaceAdapter;
import com.cctvp.ui.view.AppView.OnAppViewChangeListener;
import com.cctvp.ui.view.AppView.OnDeleteClickListener;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ViewSwitcher;
import android.widget.AdapterView.OnItemClickListener;
/** 全部源码看附件
public class mainA implements OnClickListener, Observe
ViewSwitcher {
int[] img={
R.drawable.bbtc3,R.drawable.bbtc3,R.drawable.bbtc3
};
BaseAdapter baseAdapter=new BaseAdapter(){
@Override
public int getCount() {
return img.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView imageView = new ImageView(activity);
// imageView.setImageResource(img[arg0]);
imageView.setBackgroundResource(img[arg0]);
imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT,250));
return imageView;
}
};
// private AppDataBO appDataBO = AppDataBO.getInstance();
private AppViewListener appViewClickListener = new AppViewListener();
private TextView txtCurUser;
private int resourceId = 0;
public PortalHome(Activity activity, View content) {
Log.i("tag", "PortalHome类*****"+"PortalHome方法");
this.activity = activity;
this.content = content;
init();
}
private void init() {
Log.i("tag", "PortalHome类*****"+"init方法");
this.switcher = (ViewSwitcher) content.findViewById(R.id.portal_home_switcher);//两个视图只显示一个,滑瓶
// txtCurUser = (TextView)content.findViewById(R.id.cur_user_lable);
if(txtCurUser != null){
// User user = MosseUtil.getInstance().getCurrentUser();
// if(user != null){
//// txtCurUser.setText(user.getUserName());
//txtCurUser.setText("廉宇华");
// }
}
// portalAddToDesktop = new PortalAddToDesktop(activity, content, this, this);//点击添加按钮后,显示添加视图
// user_state_select = (ImageView) content.findViewById(R.id.user_state_select);
// user_state = (ImageView) content.findViewById(R.id.user_state);
// setUserStateImage(MosseUtil.getInstance().getCurrentUser().getLoginType());
dragLayer = (DragLayer) content.findViewById(R.id.draglayer);//整个桌面的总布局
workspace = (Workspace) content.findViewById(R.id.workspace);
clipImageView = (ClipImageView) content.findViewById(R.id.clipview);//实现了WorkspaceListener这个接口
eventCenter = new EventCenter(activity, workspace, dragLayer);
dragLayer.setInterceptTouchEvent(eventCenter);
adapter = new WorkspaceAdapter(activity, getUserHomeApps());
// 设置4种事件,WorkspaceAdapter是被观察者 同时设置个事件
adapter.setOnClickListener(appViewClickListener);
adapter.setOnLongClickListener(eventCenter);//间接:view.setOnLongClickListener
adapter.setOnDeleteClickListener(appViewClickListener);
adapter.setOnAppViewChangeListener(appViewClickListener);
workspace.setWorkspaceAdapter(adapter);//设置适配器,同时设置了观察者
workspace.setWorkspaceListener(clipImageView);
adapter.notifyObservers();
intiGallery();
clipImageView.setGalleryView(gallery);
// user_state_select.setOnClickListener(this);
}
// public void setUserStateImage(UserLoginType userLoginType){
// if (userLoginType.equals(UserLoginType.LoginType_online)) {
// user_state.setImageResource(R.drawable.user_state_select_online);
// }else {
// user_state.setImageResource(R.drawable.user_state_select_noline);
// }
// }
public void intiGallery(){
gallery = (Gallery)content.findViewById(R.id.my_galley);
gallery.setAdapter(baseAdapter);
gallery.setOnItemClickListener(
new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Log.i("tag", "onItemClick"+arg2);
gallery.setSelection(arg2);
}
}
);
}
public Map<Integer, List<AppInfo>> getUserHomeApps() {
MyUtils.saveImage(activity);
HashMap<Integer, List<AppInfo>> apps = new HashMap<Integer, List<AppInfo>>();
List<AppInfo> listAppInfo = new ArrayList<AppInfo>();
List<AppInfo> listAppInfo2 = new ArrayList<AppInfo>();
List<AppInfo> listAppInfo3 = new ArrayList<AppInfo>();
for (int j = 1; j < 7; j++) {
AppInfo info = new AppInfo();
info.app_id = j+"1";
info.page_no =0;
info.pos_no = j;
if (info.app_id.equals("1")) {
info.app_name = "lgf";
}else {
info.app_name = "lyh";
}
if (info.app_id.equals("41")) {
info.icon_file_name = "/data/data/com.cctvp/icon/1.png";
}else {
info.icon_file_name = "/data/data/com.cctvp/icon/2.png";
}
info.app_state = 0;
if (j==1||j==2) {
info.default_app = 1;
}else {
info.default_app = 0;
}
info.version = 1;
listAppInfo.add(info);
Log.i("tag", "AppDataBO"+"info.app_id="+info.app_id);
Log.i("tag", "AppDataBO"+"icon_file_name="+info.icon_file_name);
}
for (int j = 1; j < 7; j++) {
AppInfo info = new AppInfo();
info.app_id = j+"2";
info.page_no =1;
info.pos_no = j;
if (info.app_id.equals("1")) {
info.app_name = "lgf";
}else if (info.app_id.equals("3")) {
info.app_name = "lyh";
}else {
info.app_name = "lyh2";
}
if (info.app_id.equals("52")) {
info.icon_file_name = "/data/data/com.cctvp/icon/2.png";
}else {
info.icon_file_name = "/data/data/com.cctvp/icon/1.png";
// Bitmap bitmap = BitmapFactory.decodeFile("/data/data/com.cctvp/icon/2.png");
// bitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.football);
// Log.i("tag", "jhjh=="+bitmap);
}
info.app_state = 0;
if (j==1) {
info.default_app = 0;
}else {
info.default_app = 0;
}
info.version = 1;
listAppInfo2.add(info);
Log.i("tag", "AppDataBO"+"info.app_id="+info.app_id);
Log.i("tag", "AppDataBO"+"icon_file_name="+info.icon_file_name);
}
//第三页
for (int j = 1; j < 7; j++) {
AppInfo info = new AppInfo();
info.app_id = j+"3";
info.page_no =2;
info.pos_no = j;
if (info.app_id.equals("1")) {
info.app_name = "lgf";
}else {
info.app_name = "lyh";
}
if (info.app_id.equals("13")) {
info.icon_file_name = "/data/data/com.cctvp/icon/2.png";
}else {
info.icon_file_name = "/data/data/com.cctvp/icon/1.png";
}
info.app_state = 0;
if (j==1||j==2) {
info.default_app = 0;
}else {
info.default_app = 0;
}
info.version = 1;
listAppInfo3.add(info);
Log.i("tag", "AppDataBO"+"info.app_id="+info.app_id);
Log.i("tag", "AppDataBO"+"icon_file_name="+info.icon_file_name);
}
apps.put(0, listAppInfo);
// listAppInfo.remove(3);
apps.put(1, listAppInfo2);
apps.put(2, listAppInfo3);
return apps;
}
public void refreshWorkspace(){
Log.i("tag", "PortalHome类*****"+"refreshWorkspace方法");
if(null != adapter){
// adapter.setApps(appDataBO.getUserHomeApps());
adapter.notifyObservers();
}
}
public void onAppInfoChange(String app_id ,int state) {
Log.i("tag", "PortalHome类*****"+"onAppInfoChange方法");
getWorkspace().changeApp(app_id , state);//更新桌面
if(isShowAdd){
//如果正在显示添加应用,则更新
// portalAddToDesktop.onAppInfoChange(app_id , state);
}
}
public Workspace getWorkspace() {
return workspace;
}
/*
* 选择登录方式
*/
private void selectLoginState() {
// Intent intent = new Intent(activity, UserStateSelectActivity.class);
// activity.startActivityForResult(intent, SELECE_STATE);
}
@Override
public void onClick(View v) {
// switch (v.getId()) {
// case R.id.user_state_select:
// selectLoginState();
// break;
//
// default:
// break;
// }
}
/**
* 观察当用户切换状态时返回的状态值
*/
@Override
public void update(Observable o, Object arg) {
if (arg instanceof Intent) {
final Intent intent = (Intent) arg;
if (intent.getIntExtra("select", 0) > 0 && null != user_state_select) {
user_state.setImageResource(intent.getIntExtra("select", 0));// 设置在线状态
// if (intent.getIntExtra("select", 0)==R.drawable.user_state_select_unline) {
// activity.finish();
//
// }
}
}
}
/**
* 桌面图标点击事件处理
*
* @author Administrator
*
*/
private final class AppViewListener implements OnClickListener, OnDeleteClickListener, OnAppViewChangeListener {
@Override
public void onClick(View view) {
if (view instanceof AppView && null != view) {
final AppView appView = (AppView) view;
if (null != appView.getAppInfo()) {
if (appView.getAppInfo().isAddApp()) {
if (!workspace.isLockWorkspace()) {// 如果workspace在锁定状态下是不可添加的
// 调用添加应用
showAddToDesk();
}
} else {
// 调用其它启动程序方法
new EventCenter.OnAppViewClick(activity).onClick(view);
}
}
}
}
@Override
public void onDeleteClick(AppView view) {
Utils.createDeleteDailog(activity, workspace, view.getAppInfo());
}
@Override
public void onAppViewChange(AppView view) {
Log.i("tag", "PortalHome类*****"+"onAppViewChange方法");
if (null != view && null != view.getAppInfo()) {
final AppInfo appInfo = view.getAppInfo();
// AppDataBO.getInstance().updateHomeApp(appInfo.app_id, appInfo.page_no, appInfo.pos_no);
}
}
}
// @Override
// public boolean onAddDesk(List<AppInfo> appInfos) {//PortalAddToDesktop 的内部接口OnAddDesk 给PortalAddToDesktop用
//// workspace.addNewAppView(appInfos);
//// return true;
// }
@Override
public void showDesk() {//PortalHomeViewSwitcher 给PortalAddToDesktop用
Log.i("tag", "PortalHome类*****"+"showDesk方法");
final int i = switcher.getDisplayedChild();
if(i == 1){
switcher.showPrevious();
isShowAdd = false;
}
}
/**
* 显示添加应用到首页
*/
@Override
public void showAddToDesk() {//PortalHomeViewSwitcher 给PortalAddToDesktop用
Log.i("tag", "PortalHome类*****"+"showAddToDesk方法");
final int i = switcher.getDisplayedChild();
if(i == 0){
switcher.showNext();
// portalAddToDesktop.loadData();
isShowAdd = true;
}
}
}
interface PortalHomeViewSwitcher{
void showDesk();
void showAddToDesk();
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import com.cctvp.R;
import com.cctvp.ui.view.AppInfo;
import com.cctvp.ui.view.AppView;
import com.cctvp.ui.view.ClipImageView;
import com.cctvp.ui.view.DragLayer;
import com.cctvp.ui.view.EventCenter;
import com.cctvp.ui.view.MyUtils;
import com.cctvp.ui.view.Workspace;
import com.cctvp.ui.view.WorkspaceAdapter;
import com.cctvp.ui.view.AppView.OnAppViewChangeListener;
import com.cctvp.ui.view.AppView.OnDeleteClickListener;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ViewSwitcher;
import android.widget.AdapterView.OnItemClickListener;
/** 全部源码看附件
public class mainA implements OnClickListener, Observe
ViewSwitcher {
int[] img={
R.drawable.bbtc3,R.drawable.bbtc3,R.drawable.bbtc3
};
BaseAdapter baseAdapter=new BaseAdapter(){
@Override
public int getCount() {
return img.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView imageView = new ImageView(activity);
// imageView.setImageResource(img[arg0]);
imageView.setBackgroundResource(img[arg0]);
imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT,250));
return imageView;
}
};
// private AppDataBO appDataBO = AppDataBO.getInstance();
private AppViewListener appViewClickListener = new AppViewListener();
private TextView txtCurUser;
private int resourceId = 0;
public PortalHome(Activity activity, View content) {
Log.i("tag", "PortalHome类*****"+"PortalHome方法");
this.activity = activity;
this.content = content;
init();
}
private void init() {
Log.i("tag", "PortalHome类*****"+"init方法");
this.switcher = (ViewSwitcher) content.findViewById(R.id.portal_home_switcher);//两个视图只显示一个,滑瓶
// txtCurUser = (TextView)content.findViewById(R.id.cur_user_lable);
if(txtCurUser != null){
// User user = MosseUtil.getInstance().getCurrentUser();
// if(user != null){
//// txtCurUser.setText(user.getUserName());
//txtCurUser.setText("廉宇华");
// }
}
// portalAddToDesktop = new PortalAddToDesktop(activity, content, this, this);//点击添加按钮后,显示添加视图
// user_state_select = (ImageView) content.findViewById(R.id.user_state_select);
// user_state = (ImageView) content.findViewById(R.id.user_state);
// setUserStateImage(MosseUtil.getInstance().getCurrentUser().getLoginType());
dragLayer = (DragLayer) content.findViewById(R.id.draglayer);//整个桌面的总布局
workspace = (Workspace) content.findViewById(R.id.workspace);
clipImageView = (ClipImageView) content.findViewById(R.id.clipview);//实现了WorkspaceListener这个接口
eventCenter = new EventCenter(activity, workspace, dragLayer);
dragLayer.setInterceptTouchEvent(eventCenter);
adapter = new WorkspaceAdapter(activity, getUserHomeApps());
// 设置4种事件,WorkspaceAdapter是被观察者 同时设置个事件
adapter.setOnClickListener(appViewClickListener);
adapter.setOnLongClickListener(eventCenter);//间接:view.setOnLongClickListener
adapter.setOnDeleteClickListener(appViewClickListener);
adapter.setOnAppViewChangeListener(appViewClickListener);
workspace.setWorkspaceAdapter(adapter);//设置适配器,同时设置了观察者
workspace.setWorkspaceListener(clipImageView);
adapter.notifyObservers();
intiGallery();
clipImageView.setGalleryView(gallery);
// user_state_select.setOnClickListener(this);
}
// public void setUserStateImage(UserLoginType userLoginType){
// if (userLoginType.equals(UserLoginType.LoginType_online)) {
// user_state.setImageResource(R.drawable.user_state_select_online);
// }else {
// user_state.setImageResource(R.drawable.user_state_select_noline);
// }
// }
public void intiGallery(){
gallery = (Gallery)content.findViewById(R.id.my_galley);
gallery.setAdapter(baseAdapter);
gallery.setOnItemClickListener(
new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Log.i("tag", "onItemClick"+arg2);
gallery.setSelection(arg2);
}
}
);
}
public Map<Integer, List<AppInfo>> getUserHomeApps() {
MyUtils.saveImage(activity);
HashMap<Integer, List<AppInfo>> apps = new HashMap<Integer, List<AppInfo>>();
List<AppInfo> listAppInfo = new ArrayList<AppInfo>();
List<AppInfo> listAppInfo2 = new ArrayList<AppInfo>();
List<AppInfo> listAppInfo3 = new ArrayList<AppInfo>();
for (int j = 1; j < 7; j++) {
AppInfo info = new AppInfo();
info.app_id = j+"1";
info.page_no =0;
info.pos_no = j;
if (info.app_id.equals("1")) {
info.app_name = "lgf";
}else {
info.app_name = "lyh";
}
if (info.app_id.equals("41")) {
info.icon_file_name = "/data/data/com.cctvp/icon/1.png";
}else {
info.icon_file_name = "/data/data/com.cctvp/icon/2.png";
}
info.app_state = 0;
if (j==1||j==2) {
info.default_app = 1;
}else {
info.default_app = 0;
}
info.version = 1;
listAppInfo.add(info);
Log.i("tag", "AppDataBO"+"info.app_id="+info.app_id);
Log.i("tag", "AppDataBO"+"icon_file_name="+info.icon_file_name);
}
for (int j = 1; j < 7; j++) {
AppInfo info = new AppInfo();
info.app_id = j+"2";
info.page_no =1;
info.pos_no = j;
if (info.app_id.equals("1")) {
info.app_name = "lgf";
}else if (info.app_id.equals("3")) {
info.app_name = "lyh";
}else {
info.app_name = "lyh2";
}
if (info.app_id.equals("52")) {
info.icon_file_name = "/data/data/com.cctvp/icon/2.png";
}else {
info.icon_file_name = "/data/data/com.cctvp/icon/1.png";
// Bitmap bitmap = BitmapFactory.decodeFile("/data/data/com.cctvp/icon/2.png");
// bitmap = BitmapFactory.decodeResource(activity.getResources(), R.drawable.football);
// Log.i("tag", "jhjh=="+bitmap);
}
info.app_state = 0;
if (j==1) {
info.default_app = 0;
}else {
info.default_app = 0;
}
info.version = 1;
listAppInfo2.add(info);
Log.i("tag", "AppDataBO"+"info.app_id="+info.app_id);
Log.i("tag", "AppDataBO"+"icon_file_name="+info.icon_file_name);
}
//第三页
for (int j = 1; j < 7; j++) {
AppInfo info = new AppInfo();
info.app_id = j+"3";
info.page_no =2;
info.pos_no = j;
if (info.app_id.equals("1")) {
info.app_name = "lgf";
}else {
info.app_name = "lyh";
}
if (info.app_id.equals("13")) {
info.icon_file_name = "/data/data/com.cctvp/icon/2.png";
}else {
info.icon_file_name = "/data/data/com.cctvp/icon/1.png";
}
info.app_state = 0;
if (j==1||j==2) {
info.default_app = 0;
}else {
info.default_app = 0;
}
info.version = 1;
listAppInfo3.add(info);
Log.i("tag", "AppDataBO"+"info.app_id="+info.app_id);
Log.i("tag", "AppDataBO"+"icon_file_name="+info.icon_file_name);
}
apps.put(0, listAppInfo);
// listAppInfo.remove(3);
apps.put(1, listAppInfo2);
apps.put(2, listAppInfo3);
return apps;
}
public void refreshWorkspace(){
Log.i("tag", "PortalHome类*****"+"refreshWorkspace方法");
if(null != adapter){
// adapter.setApps(appDataBO.getUserHomeApps());
adapter.notifyObservers();
}
}
public void onAppInfoChange(String app_id ,int state) {
Log.i("tag", "PortalHome类*****"+"onAppInfoChange方法");
getWorkspace().changeApp(app_id , state);//更新桌面
if(isShowAdd){
//如果正在显示添加应用,则更新
// portalAddToDesktop.onAppInfoChange(app_id , state);
}
}
public Workspace getWorkspace() {
return workspace;
}
/*
* 选择登录方式
*/
private void selectLoginState() {
// Intent intent = new Intent(activity, UserStateSelectActivity.class);
// activity.startActivityForResult(intent, SELECE_STATE);
}
@Override
public void onClick(View v) {
// switch (v.getId()) {
// case R.id.user_state_select:
// selectLoginState();
// break;
//
// default:
// break;
// }
}
/**
* 观察当用户切换状态时返回的状态值
*/
@Override
public void update(Observable o, Object arg) {
if (arg instanceof Intent) {
final Intent intent = (Intent) arg;
if (intent.getIntExtra("select", 0) > 0 && null != user_state_select) {
user_state.setImageResource(intent.getIntExtra("select", 0));// 设置在线状态
// if (intent.getIntExtra("select", 0)==R.drawable.user_state_select_unline) {
// activity.finish();
//
// }
}
}
}
/**
* 桌面图标点击事件处理
*
* @author Administrator
*
*/
private final class AppViewListener implements OnClickListener, OnDeleteClickListener, OnAppViewChangeListener {
@Override
public void onClick(View view) {
if (view instanceof AppView && null != view) {
final AppView appView = (AppView) view;
if (null != appView.getAppInfo()) {
if (appView.getAppInfo().isAddApp()) {
if (!workspace.isLockWorkspace()) {// 如果workspace在锁定状态下是不可添加的
// 调用添加应用
showAddToDesk();
}
} else {
// 调用其它启动程序方法
new EventCenter.OnAppViewClick(activity).onClick(view);
}
}
}
}
@Override
public void onDeleteClick(AppView view) {
Utils.createDeleteDailog(activity, workspace, view.getAppInfo());
}
@Override
public void onAppViewChange(AppView view) {
Log.i("tag", "PortalHome类*****"+"onAppViewChange方法");
if (null != view && null != view.getAppInfo()) {
final AppInfo appInfo = view.getAppInfo();
// AppDataBO.getInstance().updateHomeApp(appInfo.app_id, appInfo.page_no, appInfo.pos_no);
}
}
}
// @Override
// public boolean onAddDesk(List<AppInfo> appInfos) {//PortalAddToDesktop 的内部接口OnAddDesk 给PortalAddToDesktop用
//// workspace.addNewAppView(appInfos);
//// return true;
// }
@Override
public void showDesk() {//PortalHomeViewSwitcher 给PortalAddToDesktop用
Log.i("tag", "PortalHome类*****"+"showDesk方法");
final int i = switcher.getDisplayedChild();
if(i == 1){
switcher.showPrevious();
isShowAdd = false;
}
}
/**
* 显示添加应用到首页
*/
@Override
public void showAddToDesk() {//PortalHomeViewSwitcher 给PortalAddToDesktop用
Log.i("tag", "PortalHome类*****"+"showAddToDesk方法");
final int i = switcher.getDisplayedChild();
if(i == 0){
switcher.showNext();
// portalAddToDesktop.loadData();
isShowAdd = true;
}
}
}
interface PortalHomeViewSwitcher{
void showDesk();
void showAddToDesk();
}
- main.rar (1.6 MB)
- 下载次数: 59
发表评论
-
android ftp断点上传和下载
2012-11-02 16:44 0FTP大文件断点上传与下载源码,需要请联系:QQ1516854 ... -
android系统通讯录模块
2012-11-02 16:35 5系统通讯录模块,增删改查拨打电话.与系统通讯录同步.可用于做办 ... -
仿苹果桌面源码
2012-11-02 16:31 6[size=x-large][/size] 仿苹果桌面,功能包 ... -
JNI知识
2012-03-06 14:22 968Java Native Interface (JNI)标准是j ... -
android图片放大 缩小 旋转
2012-03-06 14:19 2266import android.app.Activity; i ... -
ViewSwitcher使用范例
2012-03-01 13:56 0Android的Launcher界面功能菜单是一个列表,当应用 ...
相关推荐
【标题】:“Android仿苹果iPhone桌面” 在Android开发领域,为了提供用户更加贴近iOS操作体验的应用,开发者有时会尝试创建类似苹果iPhone桌面的界面。这个项目的目标是模仿iOS的主屏幕,包括图标布局、滑动效果...
仿iphone桌面拖动排序 仿苹果桌面 仿iphone ios桌面 launcher 本人见市场上很少仿排序拖拉这样的算法。所以改android源码。供大家学习使用哦。 这是android仿ios桌面的应用,支持拖动排序。 高仿iphone桌面,排列...
【标题】"仿iPhone桌面拖动排序源码"是一个针对Android平台的应用程序,旨在实现与iPhone桌面类似的交互体验,特别是让用户能够通过拖动图标来对应用快捷方式进行排序。这个功能在Android 4.0(冰淇淋三明治)及更高...
本项目是一个监控安卓手机电池电量信息的桌面小组件例子源码,安装以后默认不会显示任何东西,需要长按桌面添加小组件才能在桌面上显示一个桌面小组件,项目会自动读取电池状态信息显出出当前电量,想要学习桌面小组...
标题中的“仿Iphone风格翻页控件,源码及Jar包”指的是一个Java开发的UI组件,它模仿了苹果iPhone设备上的翻页效果。在Android或者Java Swing、JavaFX等平台开发应用时,开发者可能会使用这样的控件来提供与iOS类似...
这个项目可能是为开发者或者设计师提供的一个示例,让他们了解如何在非iOS平台上实现类似的效果,例如在Web、Android或其他桌面应用中。 描述中提到的“源程序”意味着提供的是代码级别的实现,用户可以深入研究其...
根据提供的文件信息,我们可以提取出关于iPhone X设置邮箱的知识点,并整理如下: ### iPhone X设置邮箱的方法 #### 1. 通过网页登录邮箱 - 打开浏览器,输入邮箱地址(如 ***)。 - 在登录界面输入用户名,格式...
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...
iOS是苹果公司为其移动设备(如iPhone和iPad)开发的操作系统。如果该程序是跨平台的,那么它可能使用了Java的移动开发框架,如JavaFX或Android Studio,这些工具允许开发者用Java编写代码并同时在多个平台上运行。 ...
图形窗口管理器如Weston的启动,表明用户现在可以在iPhone 7上看到和交互的桌面环境,而不仅仅是命令行工具。Weston是Wayland显示服务器的一个轻量级实现,常用于嵌入式和低资源环境,非常适合在移动设备上运行。它...
- **iPhone的iOS**:由苹果公司开发,基于Darwin内核,以直观的多点触控界面著称。iOS系统分为四个层次:内核操作系统层、内核服务层、媒体层和Cocoa Touch层。用户界面设计简洁,强调滑动、轻触等手势操作。iPhone...
模板中的文件名暗示了它包含了与手机APP相关的元素,如"iphone",表明此模板特别考虑了苹果iPhone设备的展示效果。"科技"标签则暗示模板设计可能采用了现代科技感的视觉元素,比如扁平化设计、渐变色彩或者动态效果...
`IOS`部分则是为苹果的iOS设备如iPhone和iPad准备的,很可能包含了Objective-C或Swift的源代码。开发者可以通过Xcode进行集成,为iOS用户开发原生应用,实现与摄像头的交互,如远程监控、视频流传输等。 `SDK_TPNP_...
这篇文章主要讲解如何在Android中适配和处理`apple-touch-icon`,以确保网页被添加到桌面后能呈现美观的图标。 `apple-touch-icon`是苹果公司为提高用户体验而设定的一种标准,用于在iOS设备上创建快捷方式到网页时...
CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1"。 下面是一个基于JavaScript的简单示例,用于检测是否为移动设备: ```...
这两个系统在移动设备市场占据主导地位,各有其特点,Android开放源码,允许更多的定制化,而iOS则以其流畅的用户体验和严格的质量控制著称。 5. 其他特殊操作系统:如z/OS,是IBM为其大型主机设计的,用于处理高...