diff --git a/code/MyApplication/app/src/main/AndroidManifest.xml b/code/MyApplication/app/src/main/AndroidManifest.xml index d030f57..68afd31 100644 --- a/code/MyApplication/app/src/main/AndroidManifest.xml +++ b/code/MyApplication/app/src/main/AndroidManifest.xml @@ -3,21 +3,27 @@ package="com.example.myapplication"> + android:theme="@style/AppTheme"> + android:name=".activity.LauncherActivity" + android:exported="true" > + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/MainActivity.java b/code/MyApplication/app/src/main/java/com/example/myapplication/MainActivity.java deleted file mode 100644 index e640aaf..0000000 --- a/code/MyApplication/app/src/main/java/com/example/myapplication/MainActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.myapplication; - -import androidx.appcompat.app.AppCompatActivity; - -import android.os.Bundle; - -public class MainActivity extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - } -} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/MyApplication.java b/code/MyApplication/app/src/main/java/com/example/myapplication/MyApplication.java new file mode 100644 index 0000000..8a6daf9 --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/MyApplication.java @@ -0,0 +1,14 @@ +package com.example.myapplication; + +import android.app.Application; + +import com.xuexiang.xui.XUI; + +public class MyApplication extends Application { + @Override + public void onCreate() { + super.onCreate(); + XUI.init(this); + XUI.debug(true); + } +} diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/activity/LauncherActivity.java b/code/MyApplication/app/src/main/java/com/example/myapplication/activity/LauncherActivity.java new file mode 100644 index 0000000..84245c8 --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/activity/LauncherActivity.java @@ -0,0 +1,87 @@ +package com.example.myapplication.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; + +import com.example.myapplication.R; +import com.example.myapplication.databinding.ActivityLauncherBinding; +import com.xuexiang.xui.widget.banner.anim.select.ZoomInEnter; +import com.xuexiang.xui.widget.banner.transform.RotateDownTransformer; +import com.xuexiang.xui.widget.banner.widget.banner.SimpleGuideBanner; + +import java.util.ArrayList; +import java.util.List; + +public class LauncherActivity extends AppCompatActivity { + + private SimpleGuideBanner mSimpleGuideBanner; + + private ActivityLauncherBinding binding; + private Boolean isJump = false; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivityLauncherBinding.inflate(this.getLayoutInflater()); + setContentView(binding.getRoot()); + mSimpleGuideBanner = binding.sgb; + showSimpleGuideBanner(); + startThread(); + } + + public void startThread(){ + Thread myThread = new Thread() {//创建子线程 + @Override + public void run() { + try { + sleep(2000);//使程序休眠一秒 + pageJump(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + myThread.start();//启动线程 + } + + + private void showSimpleGuideBanner() { + mSimpleGuideBanner + .setIndicatorWidth(6) + .setIndicatorHeight(6) + .setIndicatorGap(12) + .setIndicatorCornerRadius(3.5f) + .setSelectAnimClass(ZoomInEnter.class)//设置显示器选中动画 + .setTransformerClass(RotateDownTransformer.class)//页面滚动效果 + .barPadding(0, 10, 0, 10) + .setSource(getUserGuides())//设置图片资源 + .startScroll(); + + //点击跳过或者立即体验的监听 + mSimpleGuideBanner.setOnJumpClickListener(new SimpleGuideBanner.OnJumpClickListener() { + @Override + public void onJumpClick() { + pageJump(); + } + }); + } + + public void pageJump(){ + //跳转到 MainActivity + if(!isJump){ + Intent intent = new Intent(LauncherActivity.this, MainActivity.class); + startActivity(intent); + isJump = true; + this.finish();//关闭当前活动 + } + + } + + + private static List getUserGuides() { + List list = new ArrayList<>(); + list.add(R.drawable.page_launcher); + return list; + } +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/activity/MainActivity.java b/code/MyApplication/app/src/main/java/com/example/myapplication/activity/MainActivity.java new file mode 100644 index 0000000..6becf7d --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/activity/MainActivity.java @@ -0,0 +1,92 @@ +package com.example.myapplication.activity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; +import androidx.viewpager.widget.ViewPager; + +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.FrameLayout; + +import com.example.myapplication.R; +import com.example.myapplication.databinding.ActivityMainBinding; +import com.example.myapplication.fragment.DeviseFragment; +import com.example.myapplication.fragment.HomeFragment; +import com.example.myapplication.fragment.LocationFragment; +import com.example.myapplication.fragment.MineFragment; +import com.example.myapplication.fragment.TraceFragment; +import com.jpeng.jptabbar.JPTabBar; +import com.jpeng.jptabbar.OnTabSelectListener; +import com.jpeng.jptabbar.anno.NorIcons; +import com.jpeng.jptabbar.anno.SeleIcons; +import com.jpeng.jptabbar.anno.Titles; + +import java.util.ArrayList; +import java.util.List; + +public class MainActivity extends AppCompatActivity { + + + private ActivityMainBinding binding; + private JPTabBar tabbar; + private List mFragments; + @Titles + private static final String[] mTitles = {"首页","踪迹","定位","我的"}; + + @SeleIcons + private static final int[] mSeleIcons = {R.mipmap.tab_home_selected,R.mipmap.tab_trace_selected,R.mipmap.tab_position_selected,R.mipmap.tab_mine_selected}; + + @NorIcons + private static final int[] mNormalIcons = {R.mipmap.tab_home_normal,R.mipmap.tab_trace_normal,R.mipmap.tab_position_normal,R.mipmap.tab_mine_normal}; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivityMainBinding.inflate(this.getLayoutInflater()); + setContentView(binding.getRoot()); + tabbar = binding.tabbar; + initFragments(); + //导航栏设置监听器 + tabbar.setTabListener(new OnTabSelectListener() { + @Override + public void onTabSelect(int index) { + setCurrentFragment(index); + Log.i("tabbar", "onTabSelect: 我监听"+index); + } + + @Override + public void onClickMiddle(View middleBtn) { + + } + }); + } + + public void setCurrentFragment(int i) { + FragmentManager fm = getSupportFragmentManager(); + Bundle bundle = new Bundle(); + if(i==1){ + bundle.putString("jumpPage", "route"); + mFragments.get(i).setArguments(bundle); + }else if(i==2){ + bundle.putString("jumpPage", "position"); + mFragments.get(i).setArguments(bundle); + } + FragmentTransaction trans = fm.beginTransaction(); + trans.replace(R.id.frag_layout, mFragments.get(i)); + trans.commit(); + } + + + public void initFragments() { + mFragments = new ArrayList<>(); + mFragments.add(new HomeFragment()); + mFragments.add(new DeviseFragment()); + mFragments.add(new DeviseFragment()); + mFragments.add(new MineFragment()); + } + +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/adapter/CommonGridAdapter.java b/code/MyApplication/app/src/main/java/com/example/myapplication/adapter/CommonGridAdapter.java new file mode 100644 index 0000000..252a436 --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/adapter/CommonGridAdapter.java @@ -0,0 +1,38 @@ +package com.example.myapplication.adapter; + +import androidx.annotation.NonNull; + +import com.example.myapplication.R; +import com.xuexiang.xui.adapter.recyclerview.BaseRecyclerAdapter; +import com.xuexiang.xui.adapter.recyclerview.RecyclerViewHolder; +import com.xuexiang.xui.adapter.simple.AdapterItem; +import com.xuexiang.xui.widget.imageview.ImageLoader; +import com.xuexiang.xui.widget.imageview.RadiusImageView; + +public class CommonGridAdapter extends BaseRecyclerAdapter { + + private boolean mIsCircle; + + public CommonGridAdapter(boolean isCircle) { + super(); + mIsCircle = isCircle; + } + + + @Override + protected int getItemLayoutId(int viewType) { + return R.layout.adapter_common_grid_item; + } + + @Override + protected void bindData(@NonNull RecyclerViewHolder holder, int position, AdapterItem item) { + if (item != null) { + RadiusImageView imageView = holder.findViewById(R.id.riv_item); + imageView.setCircle(mIsCircle); + ImageLoader.get().loadImage(imageView, item.getIcon()); + + holder.text(R.id.tv_title, item.getTitle().toString().substring(0, 1)); + holder.text(R.id.tv_sub_title, item.getTitle()); + } + } +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/adapter/DeviseAdapter.java b/code/MyApplication/app/src/main/java/com/example/myapplication/adapter/DeviseAdapter.java new file mode 100644 index 0000000..dd01b56 --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/adapter/DeviseAdapter.java @@ -0,0 +1,47 @@ +package com.example.myapplication.adapter; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.myapplication.R; +import com.example.myapplication.entity.DeviseEntity; + +import java.util.List; + +public class DeviseAdapter extends RecyclerView.Adapter{ + + private List list; + private FragmentManager manager; + + public DeviseAdapter(List list, FragmentManager manager) { + this.list = list; + this.manager = manager; + } + + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return null; + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + + } + + @Override + public int getItemCount() { + return list.size(); + } + + static class ViewHolder extends RecyclerView.ViewHolder { + + public ViewHolder(@NonNull View itemView) { + super(itemView); + } + } +} diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/entity/DeviseEntity.java b/code/MyApplication/app/src/main/java/com/example/myapplication/entity/DeviseEntity.java new file mode 100644 index 0000000..c54d513 --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/entity/DeviseEntity.java @@ -0,0 +1,4 @@ +package com.example.myapplication.entity; + +public class DeviseEntity { +} diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/DeviseFragment.java b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/DeviseFragment.java new file mode 100644 index 0000000..ec447bb --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/DeviseFragment.java @@ -0,0 +1,41 @@ +package com.example.myapplication.fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.myapplication.databinding.FragmentDeviseBinding; + +public class DeviseFragment extends Fragment { + + FragmentDeviseBinding binding; + private String jumpPage; + private static final String ARG_PARAM1 = "jumpPage"; + + public DeviseFragment() { + // Required empty public constructor + } + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + jumpPage = getArguments().getString(ARG_PARAM1); + Log.i("devise", "onCreate: 在碎片中获得devise" + jumpPage); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + binding = FragmentDeviseBinding.inflate(inflater, container, false); + return binding.getRoot(); + } +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/HomeFragment.java b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/HomeFragment.java new file mode 100644 index 0000000..3afe72a --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/HomeFragment.java @@ -0,0 +1,66 @@ +package com.example.myapplication.fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.myapplication.R; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link HomeFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class HomeFragment extends Fragment { + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + public HomeFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment HomeFragment. + */ + // TODO: Rename and change types and number of parameters + public static HomeFragment newInstance(String param1, String param2) { + HomeFragment fragment = new HomeFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_home, container, false); + } +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/LocationFragment.java b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/LocationFragment.java new file mode 100644 index 0000000..bb516bb --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/LocationFragment.java @@ -0,0 +1,66 @@ +package com.example.myapplication.fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.myapplication.R; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link LocationFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class LocationFragment extends Fragment { + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + public LocationFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment LocationFragment. + */ + // TODO: Rename and change types and number of parameters + public static LocationFragment newInstance(String param1, String param2) { + LocationFragment fragment = new LocationFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_location, container, false); + } +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/MineFragment.java b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/MineFragment.java new file mode 100644 index 0000000..d6ab45f --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/MineFragment.java @@ -0,0 +1,68 @@ +package com.example.myapplication.fragment; + +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.os.Bundle; + +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.RecyclerView; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.myapplication.R; +import com.example.myapplication.adapter.CommonGridAdapter; +import com.example.myapplication.databinding.FragmentMineBinding; +import com.xuexiang.xui.adapter.simple.AdapterItem; +import com.xuexiang.xui.utils.ResUtils; +import com.xuexiang.xui.utils.WidgetUtils; + +import java.util.ArrayList; +import java.util.List; + + +public class MineFragment extends Fragment { + + RecyclerView recyclerHead; + FragmentMineBinding binding; + private CommonGridAdapter mGridAdapter; + + public MineFragment() { + // Required empty public constructor + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + binding = FragmentMineBinding.inflate(inflater, container, false); + recyclerHead = binding.recyclerHead; + initTools(); + return binding.getRoot(); + } + + public void initTools(){ + WidgetUtils.initGridRecyclerView(recyclerHead, 4, 0); + recyclerHead.setAdapter(mGridAdapter = new CommonGridAdapter(true)); + mGridAdapter.refresh(getGridItems(this.getActivity(),R.array.grid_titles_entry,R.array.grid_icons_entry)); + } + + private static List getGridItems(Context context, int titleArrayId, int iconArrayId) { + List list = new ArrayList<>(); + String[] titles = ResUtils.getStringArray(titleArrayId); + Drawable[] icons = ResUtils.getDrawableArray(context, iconArrayId); + for (int i = 0; i < titles.length; i++) { + list.add(new AdapterItem(titles[i], icons[i])); + } + Log.i("TAB", "getGridItems: "+list.size()); + return list; + } + +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/TraceFragment.java b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/TraceFragment.java new file mode 100644 index 0000000..537f239 --- /dev/null +++ b/code/MyApplication/app/src/main/java/com/example/myapplication/fragment/TraceFragment.java @@ -0,0 +1,36 @@ +package com.example.myapplication.fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.myapplication.R; +import com.example.myapplication.databinding.FragmentMineBinding; +import com.example.myapplication.databinding.FragmentTraceBinding; + +public class TraceFragment extends Fragment { + + FragmentTraceBinding binding; + private String[] titles = {"今天","昨天"}; + public TraceFragment() { + // Required empty public constructor + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + binding = FragmentTraceBinding.inflate(inflater, container, false); + binding.easyIndicator2.setTabTitles(titles); + return binding.getRoot(); + } +} \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/drawable/glass.png b/code/MyApplication/app/src/main/res/drawable/glass.png new file mode 100644 index 0000000..f580f5a Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/glass.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/icon_back_white.png b/code/MyApplication/app/src/main/res/drawable/icon_back_white.png new file mode 100644 index 0000000..ea53c1f Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/icon_back_white.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/map.png b/code/MyApplication/app/src/main/res/drawable/map.png new file mode 100644 index 0000000..7ec634d Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/map.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/normal_photo.png b/code/MyApplication/app/src/main/res/drawable/normal_photo.png new file mode 100644 index 0000000..f3e7ccb Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/normal_photo.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/page_launcher.png b/code/MyApplication/app/src/main/res/drawable/page_launcher.png new file mode 100644 index 0000000..56a459d Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/page_launcher.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/shape_gradient_titlebar_background.xml b/code/MyApplication/app/src/main/res/drawable/shape_gradient_titlebar_background.xml new file mode 100644 index 0000000..ff5e9b3 --- /dev/null +++ b/code/MyApplication/app/src/main/res/drawable/shape_gradient_titlebar_background.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/drawable/shape_indicator_line.xml b/code/MyApplication/app/src/main/res/drawable/shape_indicator_line.xml new file mode 100644 index 0000000..0356f76 --- /dev/null +++ b/code/MyApplication/app/src/main/res/drawable/shape_indicator_line.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/drawable/tool_assist.png b/code/MyApplication/app/src/main/res/drawable/tool_assist.png new file mode 100644 index 0000000..733b238 Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/tool_assist.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/tool_devise.png b/code/MyApplication/app/src/main/res/drawable/tool_devise.png new file mode 100644 index 0000000..63b77fb Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/tool_devise.png differ diff --git a/code/MyApplication/app/src/main/res/drawable/tool_ques.png b/code/MyApplication/app/src/main/res/drawable/tool_ques.png new file mode 100644 index 0000000..a306728 Binary files /dev/null and b/code/MyApplication/app/src/main/res/drawable/tool_ques.png differ diff --git a/code/MyApplication/app/src/main/res/layout/activity_launcher.xml b/code/MyApplication/app/src/main/res/layout/activity_launcher.xml new file mode 100644 index 0000000..598245f --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/activity_launcher.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/activity_main.xml b/code/MyApplication/app/src/main/res/layout/activity_main.xml index 4fc2444..13d6051 100644 --- a/code/MyApplication/app/src/main/res/layout/activity_main.xml +++ b/code/MyApplication/app/src/main/res/layout/activity_main.xml @@ -1,18 +1,21 @@ - + android:orientation="vertical"> - + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/adapter_common_grid_item.xml b/code/MyApplication/app/src/main/res/layout/adapter_common_grid_item.xml new file mode 100644 index 0000000..01e013f --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/adapter_common_grid_item.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/devise_cardview.xml b/code/MyApplication/app/src/main/res/layout/devise_cardview.xml new file mode 100644 index 0000000..1378d38 --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/devise_cardview.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/fragment_devise.xml b/code/MyApplication/app/src/main/res/layout/fragment_devise.xml new file mode 100644 index 0000000..9ce7001 --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/fragment_devise.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/fragment_home.xml b/code/MyApplication/app/src/main/res/layout/fragment_home.xml new file mode 100644 index 0000000..8c96171 --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/fragment_location.xml b/code/MyApplication/app/src/main/res/layout/fragment_location.xml new file mode 100644 index 0000000..fc92cfb --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/fragment_location.xml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/fragment_mine.xml b/code/MyApplication/app/src/main/res/layout/fragment_mine.xml new file mode 100644 index 0000000..9e425f0 --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/fragment_mine.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/fragment_trace.xml b/code/MyApplication/app/src/main/res/layout/fragment_trace.xml new file mode 100644 index 0000000..f46510c --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/fragment_trace.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/layout_devise_card_item.xml b/code/MyApplication/app/src/main/res/layout/layout_devise_card_item.xml new file mode 100644 index 0000000..c348e4d --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/layout_devise_card_item.xml @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/layout/trace_cardview.xml b/code/MyApplication/app/src/main/res/layout/trace_cardview.xml new file mode 100644 index 0000000..94e9d3a --- /dev/null +++ b/code/MyApplication/app/src/main/res/layout/trace_cardview.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_home_normal.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_home_normal.png new file mode 100644 index 0000000..e971b91 Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_home_normal.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_home_selected.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_home_selected.png new file mode 100644 index 0000000..fbce314 Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_home_selected.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_mine_normal.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_mine_normal.png new file mode 100644 index 0000000..36e20a7 Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_mine_normal.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_mine_selected.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_mine_selected.png new file mode 100644 index 0000000..c1e09be Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_mine_selected.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_position_normal.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_position_normal.png new file mode 100644 index 0000000..42bfc42 Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_position_normal.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_position_selected.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_position_selected.png new file mode 100644 index 0000000..9b3b793 Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_position_selected.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_trace_normal.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_trace_normal.png new file mode 100644 index 0000000..d5ee3fd Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_trace_normal.png differ diff --git a/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_trace_selected.png b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_trace_selected.png new file mode 100644 index 0000000..88e5f9b Binary files /dev/null and b/code/MyApplication/app/src/main/res/mipmap-hdpi/tab_trace_selected.png differ diff --git a/code/MyApplication/app/src/main/res/values/colors.xml b/code/MyApplication/app/src/main/res/values/colors.xml index f8c6127..d89b58e 100644 --- a/code/MyApplication/app/src/main/res/values/colors.xml +++ b/code/MyApplication/app/src/main/res/values/colors.xml @@ -7,4 +7,17 @@ #FF018786 #FF000000 #FFFFFFFF + #F86F33 + #F6F6F6 + + #777777 + #EF5362 + #FE6D4B + #FFCF47 + #9FD661 + #3FD0AD + #2BBDF3 + #5A9AEF + #AC8FEF + #EE85C1 \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/values/dimens.xml b/code/MyApplication/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..1907052 --- /dev/null +++ b/code/MyApplication/app/src/main/res/values/dimens.xml @@ -0,0 +1,6 @@ + + + 20sp + 16dp + 16dp + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/values/strings.xml b/code/MyApplication/app/src/main/res/values/strings.xml index 3de1a39..aebe5ca 100644 --- a/code/MyApplication/app/src/main/res/values/strings.xml +++ b/code/MyApplication/app/src/main/res/values/strings.xml @@ -1,3 +1,20 @@ My Application + + Hello blank fragment + 常用功能 + + + 添加设备 + 常见问题 + 客服 + + + + + @drawable/tool_devise + @drawable/tool_ques + @drawable/tool_assist + + \ No newline at end of file diff --git a/code/MyApplication/app/src/main/res/values/themes.xml b/code/MyApplication/app/src/main/res/values/themes.xml index eebc2d0..eeca252 100644 --- a/code/MyApplication/app/src/main/res/values/themes.xml +++ b/code/MyApplication/app/src/main/res/values/themes.xml @@ -1,16 +1,16 @@ - - + + +