package com.ljp.laucher;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.ljp.laucher.util.Configure;
import com.ljp.laucher.util.DateAdapter;
import com.ljp.laucher.util.DragGrid;
import com.ljp.laucher.util.ScrollLayout;
public class MiLaucherActivity extends Activity{
/** GridView. */
private LinearLayout linear;private RelativeLayout relate;
private DragGrid gridView;
private ScrollLayout lst_views;
TextView tv_page;// int oldPage=1;
private ImageView runImage, delImage;
LinearLayout.LayoutParams param;
TranslateAnimation left, right;
Animation up, down;
public static final int PAGE_SIZE = 8;
ArrayList<DragGrid> gridviews = new ArrayList<DragGrid>();
ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();//全部数据的集合集lists.size()==countpage;
ArrayList<String> lstDate = new ArrayList<String>();//每一页的数据
SensorManager sm;SensorEventListener lsn;boolean isClean =false;Vibrator vibrator;int rockCount=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
for (int i = 0; i < 22; i++) {
lstDate.add("" + i);
}
init();initData();
for (int i = 0; i < Configure.countPages; i++) {
lst_views.addView(addGridView(i));
}
lst_views.setPageListener(new ScrollLayout.PageListener() {
@Override
public void page(int page) {
setCurPage(page);
}
});
runImage = (ImageView) findViewById(R.id.run_image);
runAnimation();
delImage = (ImageView) findViewById(R.id.dels);
relate.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
System.out.println("LongClick");
return false;
}
});
vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);
sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
lsn = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
if (e.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
if(!isClean&&rockCount>=10){
isClean=true;rockCount=0;
vibrator.vibrate(100);
CleanItems();
return;
}
float newX = e.values[SensorManager.DATA_X];
float newY = e.values[SensorManager.DATA_Y];
float newZ = e.values[SensorManager.DATA_Z];
//if ((newX >= 18 || newY >= 20||newZ >= 20 )&&rockCount<4) {
if((newX >= 18 || newY >= 20||newZ >= 20 ) && rockCount%2==0){
rockCount++;
return;
}if((newX <= -18 || newY <= -20||newZ <= -20 ) && rockCount%2==1){
rockCount++;
return;
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
sm.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);
}
public void init() {
relate = (RelativeLayout) findViewById(R.id.relate);
lst_views = (ScrollLayout) findViewById(R.id.views);
tv_page = (TextView) findViewById(R.id.tv_page);
tv_page.setText("1");
com.ljp.laucher.util.Configure.init(MiLaucherActivity.this);
param = new LinearLayout.LayoutParams(
android.view.ViewGroup.LayoutParams.FILL_PARENT,
android.view.ViewGroup.LayoutParams.FILL_PARENT);
param.rightMargin = 100;
param.leftMargin = 20;
if (gridView != null) {
lst_views.removeAllViews();
}
}
public void initData(){
Configure.countPages = (int) Math.ceil(lstDate.size()
/ (float) PAGE_SIZE);
lists = new ArrayList<ArrayList<String>>();
for(int i=0;i<Configure.countPages;i++){
lists.add(new ArrayList<String>());
for (int j = PAGE_SIZE * i; j < (PAGE_SIZE * (i + 1) > lstDate
.size() ? lstDate.size() : PAGE_SIZE * (i + 1)); j++)
lists.get(i).add(lstDate.get(j));
}
boolean isLast=true;
for(int i=lists.get(Configure.countPages-1).size();i<PAGE_SIZE;i++){
if(isLast){lists.get(Configure.countPages-1).add(null);isLast=false;}
else lists.get(Configure.countPages-1).add("none");
}
}
public void CleanItems(){
lstDate=new ArrayList<String>();
for(int i=0;i<lists.size();i++){
for(int j=0;j<lists.get(i).size();j++){
if(lists.get(i).get(j)!=null&&!lists.get(i).get(j).equals("none")){
lstDate.add(lists.get(i).get(j).toString());System.out.println("-->"+lists.get(i).get(j).toString());
}
}
}System.out.println(lstDate.size());
initData();
lst_views.removeAllViews();
gridviews = new ArrayList<DragGrid>();
for (int i = 0; i < Configure.countPages; i++) {
lst_views.addView(addGridView(i));
}
isClean=false;
lst_views.snapToScreen(0);
}
public int getFristNonePosition(ArrayList<String> array){
for(int i=0;i<array.size();i++){
if(array.get(i)!=null &&
array.get(i).toString().equals("none")){
return i;
}
}
return -1;
}
public int getFristNullPosition(ArrayList<String> array){
for(int i=0;i<array.size();i++){
if(array.get(i)==null){
return i;
}
}
return -1;
}
public LinearLayout addGridView(int i) {
//if (lists.get(i).size() < PAGE_SIZE)
// lists.get(i).add(null);
linear = new LinearLayout(MiLaucherActivity.this);
gridView = new DragGrid(MiLaucherActivity.this);
gridView.setAdapter(new DateAdapter(MiLaucherActivity.this, lists
.get(i)));
gridView.setNumColumns(2);
gridView.setHorizontalSpacing(0);
gridView.setVerticalSpacing(0);
final int ii = i;
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
final int arg2, long arg3) {
// TODO Auto-generated method stub
if (lists.get(ii).get(arg2) == null) {
new AlertDialog.Builder(MiLaucherActivity.this)
.setTitle("添加")
.setItems(R.array.items,
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
final String[] arrayAddItems = getResources().getStringArray(R.array.items); // array
lists.get(ii).add(arg2,arrayAddItems[which]);
lists.get(ii).remove(arg2 + 1);
if (getFristNonePosition(lists.get(ii)) >0 && getFristNullPosition(lists.get(ii)) <0) {
lists.get(ii).set(getFristNonePosition(lists.get(ii)), null);
}
if(getFristNonePosition(lists.get(ii)) <0 && getFristNullPosition(lists.get(ii)) <0){
System.out.println("===");
if(ii==Configure.countPages-1 || (getFristNullPosition(lists.get(lists.size()-1)) <0 && getFristNonePosition(lists.get(lists.size()-1)) <0)){
lists.add(new ArrayList<String>());
lists.get(lists.size()-1).add(null);
for(int i=1;i<PAGE_SIZE;i++)
lists.get(lists.size()-1).add("none");
lst_views.addView(addGridView(Configure.countPages));Configure.countPages++;
}else if(getFristNonePosition(lists.get(lists.size()-1)) >0 && getFristNullPosition(lists.get(lists.size()-1)) <0){
lists.get(lists.size()-1).set(getFristNonePosition(lists.get(lists.size()-1)), null);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Android应用源码高仿小米launcher(ZAKER)跨屏拖动.zip项目安卓应用源码下载Android应用源码高仿小米launcher(ZAKER)跨屏拖动.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
资源推荐
资源详情
资源评论











收起资源包目录

































































































































共 96 条
- 1
资源评论

- F丶Start2023-06-13资源简直太好了,完美解决了当下遇到的难题,这样的资源很难不支持~

yxkfw
- 粉丝: 85
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2021年计算机二级office题库操作题.doc
- 《国际项目管理专业资质认证》培训之一汤铭端.ppt
- 2023年软件水平考试网络工程师章节复习第八章.doc
- Excel培训ppt课件.ppt
- JAVA编码规范试题.doc
- 第1章-认识网络营销.pptx
- DB13_T_2787_2018_公共信用信息交换方式和接口规范.pdf
- 办公区域网络高清监控方案(小型).docx
- 产品怎么做网络推广.pdf
- STP无线通信故障分析.doc
- M400数据采集管理软件使用说明(M4211).docx
- (完整word版)基于PLC的四层电梯控制系统设计doc.doc
- 2022促进绿色网络建设倡议书.docx
- 2021年计算机二级考试MSOffice题库.doc
- 2023年计算机二级错题.docx
- (整理版)人力资源和社会保障信息化建设解决方案.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
