app/build.gradle
@@ -28,25 +28,25 @@ manifestPlaceholders = [ JPUSH_PKGNAME : applicationId, //JPush 上注册的包名对应的 Appkey. JPUSH_APPKEY : "375adbd599ceb9977566b929", JPUSH_APPKEY : "375adbd599ceb9977566b929", //暂时填写默认值即可. JPUSH_CHANNEL : "developer-default", //若不集成厂商通道,可直接跳过以下配置 MEIZU_APPKEY : "MZ-魅族的APPKEY", MEIZU_APPID : "MZ-魅族的APPID", XIAOMI_APPID : "MI-小米的APPID", MEIZU_APPKEY : "MZ-魅族的APPKEY", MEIZU_APPID : "MZ-魅族的APPID", XIAOMI_APPID : "MI-小米的APPID", XIAOMI_APPKEY : "MI-小米的APPKEY", OPPO_APPKEY : "OP-oppo的APPKEY", OPPO_APPID : "OP-oppo的APPID", OPPO_APPSECRET : "OP-oppo的APPSECRET", VIVO_APPKEY : "vivo的APPKEY", VIVO_APPID : "vivo的APPID", HONOR_APPID : "Honor的APP ID", OPPO_APPKEY : "OP-oppo的APPKEY", OPPO_APPID : "OP-oppo的APPID", OPPO_APPSECRET: "OP-oppo的APPSECRET", VIVO_APPKEY : "vivo的APPKEY", VIVO_APPID : "vivo的APPID", HONOR_APPID : "Honor的APP ID", ] ndk { // 设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64" } } @@ -113,7 +113,6 @@ implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.3.7' // //推送相关 // // 此处以JPush 5.0.0 版本为例,5.0.0 版本开始可以自动拉取 JCore 包,无需另外配置 implementation 'cn.jiguang.sdk:jpush:5.2.2' @@ -144,4 +143,10 @@ // apply plugin: 'com.google.gms.google-services' // apply plugin: 'com.huawei.agconnect' //圆形头像 implementation 'de.hdodenhof:circleimageview:3.1.0' } app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@ android:supportsRtl="true" android:theme="@style/Theme.PipIrrApp" android:usesCleartextTraffic="true" android:hardwareAccelerated="true" tools:targetApi="31"> <!-- 告知 XXPermissions 当前项目已经适配了分区存储特性 --> <meta-data @@ -49,7 +50,7 @@ android:value="true" /> <activity android:name=".activity.LoginActivity" android:name=".activity.MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> @@ -57,7 +58,7 @@ <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".activity.MainActivity" /> <!-- <activity android:name=".activity.MainActivity" />--> <!-- Required since 5.2.0 --> <!-- 新的 tag/alias 接口结果返回需要开发者配置一个自定义的Service --> <!-- 3.3.0开始所有事件将通过该类回调 --> app/src/main/java/com/dayu/pipirrapp/activity/BaseActivity.java
@@ -1,6 +1,14 @@ package com.dayu.pipirrapp.activity; import android.os.Build; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.dayu.pipirrapp.R; /** * author: zuo @@ -9,4 +17,14 @@ * 备注: */ public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(getResources().getColor(R.color.title_color)); } } } app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
@@ -12,6 +12,7 @@ import com.dayu.pipirrapp.adapter.TabAdapter; import com.dayu.pipirrapp.databinding.ActivityMainBinding; import com.dayu.pipirrapp.fragment.BaseFragment; import com.dayu.pipirrapp.fragment.MainFragment; import com.dayu.pipirrapp.fragment.MapFragment; import com.dayu.pipirrapp.fragment.MyFragment; @@ -23,13 +24,14 @@ /** * */ public class MainActivity extends AppCompatActivity { public class MainActivity extends BaseActivity { ActivityMainBinding binding; List<Fragment> mFragment = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(LayoutInflater.from(this)); MapFragment mapFragment = new MapFragment(); app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -4,6 +4,8 @@ import android.content.Intent; import android.location.LocationManager; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -19,6 +21,7 @@ import androidx.lifecycle.LifecycleOwner; import com.dayu.pipirrapp.databinding.FragmentMapBinding; import com.dayu.pipirrapp.js.MyWebViewInterface; import com.dayu.pipirrapp.observer.MapFragmenObserver; import com.dayu.pipirrapp.service.MyLocationService; import com.dayu.pipirrapp.utils.ToastUtil; @@ -52,11 +55,12 @@ @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = FragmentMapBinding.inflate(inflater, container, false); Log.i("MapFragment", "onCreateView"); mWebView = binding.webView; initWebView(); mWebView.loadUrl("http://192.168.3.178:3002/"); mWebView.loadUrl("http://192.168.3.178:3000/"); initView(); //开启定位 Intent location = new Intent(this.getActivity(), MyLocationService.class); @@ -113,18 +117,19 @@ // LOAD_CACHE_ELSE_NETWORK: 只要本地有,无论是否过期,或者 no-cache,都使用缓存中的数据 // LOAD_NO_CACHE: 不使用缓存,只从网络获取数据 // LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据 // js 相关 // js 相关 webSettings.setJavaScriptEnabled(true); // 支持 js。如果碰到后台无法释放 js 导致耗电,应在 onStop 和 onResume 里分别设成 false 和 true // mWebView.addJavascriptInterface(new WebAppInterface(this), "android"); // js 接口 // mWebView.addJavascriptInterface(new WebAppInterface(this), "android"); // js 接口 // webSettings.setPluginsEnabled(true); // 支持插件 // 设置自适应屏幕,两者合用 // webSettings.setPluginsEnabled(true); // 支持插件 // 设置自适应屏幕,两者合用 webSettings.setUseWideViewPort(true); // 将图片调整到适合 WebView 的大小 webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小 // 缩放操作 // 缩放操作 webSettings.setSupportZoom(true); // 支持缩放,默认为 true webSettings.setBuiltInZoomControls(true); // 设置内置的缩放控件,若为 false,则该 WebView 不可缩放 webSettings.setDisplayZoomControls(false); // 隐藏原生的缩放控件 webSettings.setLoadsImagesAutomatically(true);//预加载 //webView弹JsAlert mWebView.setWebChromeClient(new WebChromeClient() { @Override @@ -132,15 +137,26 @@ return super.onJsAlert(view, url, message, result); } }); MyWebViewInterface myWebViewInterface=new MyWebViewInterface(this); mWebView.addJavascriptInterface(myWebViewInterface,"Android"); } void initView() { binding.flyBtn.setOnClickListener(v -> { mWebView.evaluateJavascript("javascript:moveTo(116.399565,39.89432)", value -> { mWebView.evaluateJavascript("javascript:locationOverLay(116.399565,39.89432)", value -> { }); }); } public void showWaterIntakeDetail(String data){ binding.bottomLL.setVisibility(View.VISIBLE); } public void closeWaterIntakeDetail(){ binding.bottomLL.setVisibility(View.GONE); } } app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
@@ -1,10 +1,34 @@ package com.dayu.pipirrapp.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.dayu.pipirrapp.databinding.FragmentMapBinding; import com.dayu.pipirrapp.databinding.FragmentMyBinding; /** * author: zuo * Date: 2023/12/20 * Time: 10:16 * 备注:我的 */ public class MyFragment extends BaseFragment{ public class MyFragment extends BaseFragment { FragmentMyBinding binding; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = FragmentMyBinding.inflate(inflater, container, false); return binding.getRoot(); } } app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java
New file @@ -0,0 +1,69 @@ package com.dayu.pipirrapp.js; import android.content.Context; import android.os.Handler; import android.os.Looper; import android.webkit.JavascriptInterface; import com.dayu.pipirrapp.fragment.MapFragment; import com.dayu.pipirrapp.utils.ToastUtil; /** * author: zuo * Date: 2024-01-18 * Time: 9:14 * 备注:供Vue调用原生 */ public class MyWebViewInterface { private MapFragment myContext; public MyWebViewInterface(MapFragment context) { myContext = context; } @JavascriptInterface public void showToast(String msg) { ToastUtil.showToastLong(myContext.getContext(), msg); } /** * 显示取水口详情 * @param data */ @JavascriptInterface public void showWaterIntakeView(String data) { if (myContext instanceof MapFragment) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { // 在主线程上执行UI操作 // 更新或操作UI元素的代码 myContext.showWaterIntakeDetail(data); } }); } } /** * 隐藏取水口详情 * */ @JavascriptInterface public void closeWaterIntakeView() { if (myContext instanceof MapFragment) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { // 在主线程上执行UI操作 // 更新或操作UI元素的代码 myContext.closeWaterIntakeDetail(); } }); // myContext.closeWaterIntakeDetail(); } } } app/src/main/java/com/dayu/pipirrapp/view/MyWebView.java
New file @@ -0,0 +1,20 @@ package com.dayu.pipirrapp.view; import android.content.Context; import android.webkit.WebView; import androidx.annotation.NonNull; /** * author: zuo * Date: 2024-01-19 * Time: 14:26 * 备注: */ public class MyWebView extends WebView { public MyWebView(@NonNull Context context) { super(context); }} app/src/main/java/com/dayu/pipirrapp/view/TitleBar.java
New file @@ -0,0 +1,269 @@ /** * */ package com.dayu.pipirrapp.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.dayu.pipirrapp.R; /*** * 标题视图 * * @author shisl * @time 2015-4-29 */ public class TitleBar extends LinearLayout { private static final String TAG = "CNavigationBar"; public static final int LEFT = 0; public static final int CENTER = 1; public static final int RIGHT = 2; public static final int IMAGE = 3; public static final int TEXT = 4; public static final int ClickType_LEFT_TEXT = 1; public static final int ClickType_LEFT_IMAGE = 2; public static final int ClickType_CENTER_TEXT = 3; public static final int ClickType_CENTER_IMAGE = 4; public static final int ClickType_RIGHT_TEXT = 5; public static final int ClickType_RIGHT_IMAGE = 6; private TextView tvLeft; private ImageView ivLeft; private LinearLayout llLeft; private ImageButton ibCenter; private TextView btnCenter; private TextView tvRight; private ImageView ivRight; private LinearLayout llRight; public TitleBar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs); initView(context); } /** * 初始化我们自定义的组合控件 */ private void initView(Context context) { // 转化布局文件————>View对象,这个view对象直接挂载在自己(组合控件)身上 View.inflate(context, R.layout.custom_titlebar, this); // this代表挂载到自己身上 tvLeft = (TextView) this.findViewById(R.id.tv_titlebar_left); btnCenter = (TextView) this.findViewById(R.id.btn_titlebar_center); tvRight = (TextView) this.findViewById(R.id.tv_titlebar_right); ivLeft = (ImageView) this.findViewById(R.id.iv_titlebar_left); ibCenter = (ImageButton) this.findViewById(R.id.ib_titlebar_center); ivRight = (ImageView) this.findViewById(R.id.iv_titlebar_right); llLeft = (LinearLayout) this.findViewById(R.id.ll_left); llRight = (LinearLayout) this.findViewById(R.id.ll_right); } public TitleBar(Context context, AttributeSet attrs) { super(context, attrs); initView(context); try { /** * 跟values/attrs.xml里面定义的属性绑定 */ // 从attrs.xml获取自定义的控件属性 TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TitleBar); // //从attrs.xml获取自定义的value属性(控件属性名称+“_” + 自定义的属性名称) String leftText = a.getString(R.styleable.TitleBar_leftText); int leftImage = a.getResourceId(R.styleable.TitleBar_leftImage, 0); String centerText = a.getString(R.styleable.TitleBar_centerText); int centerImage = a.getResourceId(R.styleable.TitleBar_centerImage, 0); String rightText = a.getString(R.styleable.TitleBar_rightText); int rightImage = a.getResourceId(R.styleable.TitleBar_rightImage, 0); a.recycle(); setLeftText(leftText); setRightText(rightText); setCenterText(centerText); setLeftImage(leftImage); setRightImage(rightImage); setCenterImage(centerImage); } catch (Exception e) { e.printStackTrace(); } } @Deprecated public void setOnItemclickListner(int type, int aligh, OnClickListener listner) { if (listner == null) { return; } if (type == TEXT) { switch (aligh) { case LEFT: setOnItemclickListner(ClickType_LEFT_TEXT, listner); break; case CENTER: setOnItemclickListner(ClickType_CENTER_TEXT, listner); break; case RIGHT: setOnItemclickListner(ClickType_RIGHT_TEXT, listner); break; default: break; } } else if (type == IMAGE) { switch (aligh) { case LEFT: setOnItemclickListner(ClickType_LEFT_IMAGE, listner); break; case CENTER: setOnItemclickListner(ClickType_CENTER_IMAGE, listner); break; case RIGHT: setOnItemclickListner(ClickType_RIGHT_IMAGE, listner); break; default: break; } } } public void setOnItemclickListner(int clickType, OnClickListener listner) { try { switch (clickType) { case ClickType_LEFT_TEXT: if (tvLeft.getVisibility() == View.VISIBLE) { llLeft.setOnClickListener(listner); } break; case ClickType_LEFT_IMAGE: if (ivLeft.getVisibility() == View.VISIBLE) { llLeft.setOnClickListener(listner); } break; case ClickType_CENTER_TEXT: if (btnCenter.getVisibility() == View.VISIBLE) { btnCenter.setOnClickListener(listner); } break; case ClickType_CENTER_IMAGE: if (ibCenter.getVisibility() == View.VISIBLE) { ibCenter.setOnClickListener(listner); } break; case ClickType_RIGHT_TEXT: if (tvRight.getVisibility() == View.VISIBLE) { llRight.setOnClickListener(listner); } else { llRight.setOnClickListener(null); } break; case ClickType_RIGHT_IMAGE: if (ivRight.getVisibility() == View.VISIBLE) { llRight.setOnClickListener(listner); } break; default: break; } } catch (Exception e) { e.printStackTrace(); } } public void setLeftImage(int leftImage) { if (leftImage == 0) { ivLeft.setVisibility(View.GONE); return; } ivLeft.setVisibility(View.VISIBLE); ivLeft.setImageResource(leftImage); } public void setRightImage(int rightImage) { if (rightImage == 0) { ivRight.setVisibility(View.GONE); return; } ivRight.setVisibility(View.VISIBLE); ivRight.setImageResource(rightImage); } private void setCenterImage(int leftImage) { if (leftImage == 0) { return; } ivLeft.setBackgroundResource(leftImage); } public void setLeftText(String leftText) { if (leftText == null) { return; } tvLeft.setVisibility(View.VISIBLE); Log.i(TAG, "leftText--->" + leftText); tvLeft.setText(leftText); } public void setRightText(String rightText) { if (rightText == null) { return; } tvRight.setVisibility(View.VISIBLE); llRight.setVisibility(View.VISIBLE); tvRight.setText(rightText); } public void setCenterText(String centerText) { if (centerText == null) { return; } btnCenter.setVisibility(View.VISIBLE); Log.i(TAG, "centerText--->" + centerText); btnCenter.setText(centerText); } public void setRightStatus(boolean isable) { tvRight.setEnabled(isable); ivRight.setEnabled(isable); llRight.setEnabled(isable); } public void setRightIMGVisibility(int Visibility) { ivRight.setVisibility(Visibility); } public TextView getTitleTextView() { return btnCenter; } public LinearLayout getLlRight() { return llRight; } } app/src/main/res/drawable/bg_fillet_wite.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" /> <corners android:radius="5dp" /> <stroke android:width="1dp" android:color="@color/white" /> </shape> app/src/main/res/drawable/btn_blue_bg.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_blue_bg_up" android:state_pressed="true" /> <item android:drawable="@drawable/btn_blue_bg_down" /> </selector> app/src/main/res/drawable/btn_blue_bg_down.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/base_blue" /> <corners android:radius="90dp" /> <stroke android:width="1dp" android:color="@color/base_blue" /> </shape> app/src/main/res/drawable/btn_blue_bg_up.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/down_blue" /> <corners android:radius="90dp" /> <stroke android:width="1dp" android:color="@color/down_blue" /> </shape> app/src/main/res/drawable/ic_gps_navigation.xml
New file @@ -0,0 +1,21 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="31dp" android:height="31dp" android:viewportWidth="48" android:viewportHeight="48"> <path android:pathData="M24,44C35.046,44 44,35.046 44,24C44,12.954 35.046,4 24,4C12.954,4 4,12.954 4,24C4,35.046 12.954,44 24,44Z" android:strokeLineJoin="round" android:strokeWidth="4" android:fillColor="#1890FF" android:fillType="evenOdd" android:strokeColor="#1890FF" android:strokeLineCap="round"/> <path android:pathData="M24,13L17,34L24,29L31,34L24,13Z" android:strokeLineJoin="round" android:strokeWidth="4" android:fillColor="#FFF" android:strokeColor="#FFF" android:strokeLineCap="round"/> </vector> app/src/main/res/drawable/ic_right.xml
New file @@ -0,0 +1,13 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="31dp" android:height="31dp" android:viewportWidth="48" android:viewportHeight="48"> <path android:pathData="M19,12L31,24L19,36" android:strokeLineJoin="round" android:strokeWidth="4" android:fillColor="#00000000" android:strokeColor="#757575" android:strokeLineCap="round"/> </vector> app/src/main/res/layout/activity_change_pass_word.xml
New file @@ -0,0 +1,67 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/bg_color" android:orientation="vertical"> <com.dayu.pipirrapp.view.TitleBar android:id="@+id/title" android:layout_width="match_parent" android:layout_height="45dp" android:layout_alignParentTop="true" app:centerText="修改密码" /> <EditText android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:hint="请输入旧密码" android:paddingLeft="20dp" android:paddingRight="20dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/grey" /> <EditText android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:hint="请输入新密码" android:paddingLeft="20dp" android:paddingRight="20dp" /> <EditText android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:layout_marginTop="1dp" android:background="@color/white" android:hint="再次输入新密码" android:paddingLeft="20dp" android:paddingRight="20dp" /> <TextView android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@drawable/ic_blue_background" android:gravity="center" android:layout_marginRight="40dp" android:layout_marginLeft="40dp" android:layout_marginTop="100dp" android:text="修 改" android:textColor="@color/white" android:textSize="@dimen/common_btn_text_size" /> </LinearLayout> app/src/main/res/layout/custom_titlebar.xml
New file @@ -0,0 +1,116 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/woa_main_layout" android:layout_width="fill_parent" android:layout_height="50dp" android:background="@color/title_color" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@null" android:gravity="center_vertical" android:orientation="horizontal"> <!-- 左边 --> <LinearLayout android:id="@+id/ll_left" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="2" android:background="@null" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/iv_titlebar_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@null" android:paddingLeft="5dp" android:paddingTop="14dp" android:paddingRight="10dp" android:paddingBottom="14dp" android:src="@mipmap/icon_back" android:visibility="visible" /> <TextView android:id="@+id/tv_titlebar_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="1dp" android:text="" android:textSize="15sp" android:visibility="gone" /> </LinearLayout> <!-- 中间 --> <LinearLayout android:id="@+id/ll_center" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="8" android:background="@null" android:gravity="center" android:orientation="horizontal"> <ImageButton android:id="@+id/ib_titlebar_center" android:layout_width="30dp" android:layout_height="fill_parent" android:visibility="gone" /> <Button android:id="@+id/btn_titlebar_center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:background="@android:color/transparent" android:ellipsize="end" android:maxLines="1" android:text="标题" android:textColor="#ffffff" android:textSize="20sp" android:visibility="visible" /> </LinearLayout> <!-- 右边 --> <LinearLayout android:id="@+id/ll_right" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="2" android:background="@null" android:gravity="center_vertical|right" android:orientation="horizontal" android:paddingRight="15dp"> <TextView android:id="@+id/tv_titlebar_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:text="完成" android:textColor="#333333" android:textSize="20sp" android:visibility="gone" /> <ImageView android:id="@+id/iv_titlebar_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:src="@null" android:visibility="visible" /> </LinearLayout> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1px" android:background="#e5e5e5" /> </LinearLayout> app/src/main/res/layout/fragment_map.xml
@@ -16,4 +16,49 @@ android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="跳转到指定位置" /> <LinearLayout android:visibility="gone" android:id="@+id/bottomLL" android:layout_width="match_parent" android:layout_height="120dp" android:layout_alignParentBottom="true" android:background="@color/white" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:orientation="vertical" android:padding="10dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="取水口" android:textColor="@color/black" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="取水口位置" android:textColor="@color/black" /> </LinearLayout> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:layout_gravity="center" android:layout_marginRight="20dp" android:padding="10dp" android:src="@drawable/ic_gps_navigation" /> </LinearLayout> </RelativeLayout> app/src/main/res/layout/fragment_my.xml
@@ -1,6 +1,185 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="match_parent" android:background="@color/bg_color"> </androidx.constraintlayout.widget.ConstraintLayout> <com.dayu.pipirrapp.view.TitleBar android:id="@+id/title" android:layout_width="match_parent" android:layout_height="45dp" android:layout_alignParentTop="true" app:centerText="个人中心" /> <View android:layout_width="match_parent" android:layout_height="200dp" android:layout_below="@+id/title" android:background="@color/title_color" /> <RelativeLayout android:id="@+id/headRL_top" android:layout_width="match_parent" android:layout_height="190dp" android:layout_below="@+id/title" android:layout_marginLeft="25dp" android:layout_marginTop="25dp" android:layout_marginRight="25dp" android:layout_marginBottom="15dp" android:background="@drawable/bg_fillet_wite" > <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/head_img" android:layout_width="80dp" android:layout_height="80dp" android:layout_centerVertical="true" android:layout_marginLeft="15dp" android:src="@mipmap/ic_head_bg" app:civ_border_color="#FFFFFF" app:civ_border_width="2dp" tools:ignore="MissingClass" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_toEndOf="@+id/head_img" android:gravity="center" android:orientation="vertical"> <TextView android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="姓名" android:textColor="@color/black" /> <TextView android:id="@+id/phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="18311594524" android:textColor="@color/grey" /> </LinearLayout> </RelativeLayout> <RelativeLayout android:id="@+id/headRL" android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:layout_below="@+id/headRL_top"> <TextView android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:gravity="center_vertical" android:paddingLeft="30dp" android:text="头像" android:textColor="@color/black" android:textSize="@dimen/my_item_text_size" /> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:src="@drawable/ic_right" /> </RelativeLayout> <RelativeLayout android:id="@+id/versionRL" android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:layout_below="@+id/headRL" android:layout_marginTop="1dp"> <TextView android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:gravity="center_vertical" android:paddingLeft="30dp" android:text="当前版本" android:textColor="@color/black" android:textSize="@dimen/my_item_text_size" /> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:src="@drawable/ic_right" /> </RelativeLayout> <RelativeLayout android:id="@+id/passwordRL" android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:layout_below="@+id/versionRL" android:layout_marginTop="1dp"> <TextView android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:gravity="center_vertical" android:paddingLeft="30dp" android:text="修改密码" android:textColor="@color/black" android:textSize="@dimen/my_item_text_size" /> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:src="@drawable/ic_right" /> </RelativeLayout> <RelativeLayout android:id="@+id/loginOutRL" android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:layout_below="@+id/passwordRL" android:layout_marginTop="1dp"> <TextView android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:gravity="center_vertical" android:paddingLeft="30dp" android:text="退出登录" android:textColor="@color/black" android:textSize="@dimen/my_item_text_size" /> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:src="@drawable/ic_right" /> </RelativeLayout> </RelativeLayout> app/src/main/res/mipmap-xhdpi/ic_head_bg.jpg
app/src/main/res/mipmap-xhdpi/icon_back.png
app/src/main/res/values/colors.xml
@@ -2,8 +2,10 @@ <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> <color name="base_blue">#3C9CFF</color> <color name="base_blue">#1890FF</color> <color name="down_blue">#3a68fc</color> <color name="ws_pay_alpha">#00000000</color> <color name="title_color">#3a68fc</color> <color name="title_color">#1890FF</color> <color name="bg_color">#F5F5F5</color> <color name="grey">#757575</color> </resources> app/src/main/res/values/dimens.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="item_height">50dp</dimen> <dimen name="my_item_text_size">17sp</dimen> <dimen name="common_btn_text_size">20sp</dimen> </resources> app/src/main/res/values/styles.xml
@@ -15,5 +15,13 @@ <!-- 标题导航条 --> <declare-styleable name="TitleBar"> <attr name="leftText" format="string" /> <attr name="centerText" format="string" /> <attr name="rightText" format="string" /> <attr name="leftImage" format="integer"></attr> <attr name="centerImage" format="integer"></attr> <attr name="rightImage" format="integer"></attr> </declare-styleable> </resources> app/src/main/res/values/themes.xml
@@ -3,7 +3,7 @@ <style name="Theme.PipIrrApp" parent="Theme.AppCompat.Light.NoActionBar" > <item name="android:windowAnimationStyle">@null</item> </style> </resources>