应用布局基本设定

This commit is contained in:
ZhanGSKen 2025-02-28 10:43:35 +08:00
parent 3031c9bfe0
commit e0e001c417
16 changed files with 273 additions and 337 deletions

View File

@ -58,10 +58,11 @@ android {
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//
implementation 'com.google.android.gms:play-services-location:20.0.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.viewpager:viewpager:1.0.0'

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Tue Feb 25 05:04:52 GMT 2025
#Fri Feb 28 02:42:20 GMT 2025
stageCount=0
libraryProject=
baseVersion=1.0
publishVersion=1.0.0
buildCount=184
buildCount=197
baseBetaVersion=1.0.1

View File

@ -47,7 +47,7 @@
tools:ignore="AllowBackup,GoogleAppIndexingWarning"
tools:targetApi="q">
<activity android:name=".MainSimpleActivity">
<activity android:name=".MainActivity">
<intent-filter>
@ -59,8 +59,7 @@
</activity>
<activity android:name=".MainActivity2">
<activity android:name=".MainSimpleActivity">
</activity>
<activity android:name="com.tencent.map.vector.demo.DemoMainActivity">

View File

@ -7,7 +7,6 @@ import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.telecom.TelecomManager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@ -17,6 +16,10 @@ import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.ViewPager;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView;
@ -25,18 +28,18 @@ import cc.winboll.studio.libapputils.app.WinBollActivityManager;
import cc.winboll.studio.libapputils.bean.APPInfo;
import cc.winboll.studio.libapputils.view.YesNoAlertDialog;
import cc.winboll.studio.positions.R;
import com.tencent.map.vector.demo.DemoMainActivity;
import cc.winboll.studio.positions.activities.SettingsActivity;
import cc.winboll.studio.positions.adapters.MyPagerAdapter;
import cc.winboll.studio.positions.beans.MainServiceBean;
import cc.winboll.studio.positions.services.MainService;
import cc.winboll.studio.positions.fragments.LogFragment;
import cc.winboll.studio.positions.fragments.PositionsFragment;
import cc.winboll.studio.positions.fragments.TXMSFragment;
import cc.winboll.studio.positions.fragments.TasksFragment;
import com.google.android.material.tabs.TabLayout;
import com.tencent.map.vector.demo.AbsActivity;
import java.util.ArrayList;
import java.util.List;
import com.tencent.map.vector.demo.AbsListActivity;
import com.tencent.map.vector.demo.AbsActivity;
final public class MainSimpleActivity extends AbsActivity implements IWinBollActivity, ViewPager.OnPageChangeListener, View.OnClickListener {
final public class MainActivity extends AbsActivity implements IWinBollActivity, ViewPager.OnPageChangeListener, View.OnClickListener {
public static final String TAG = "MainActivity";
@ -46,10 +49,11 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct
public static final String ACTION_SOS = "cc.winboll.studio.libappbase.WinBoll.ACTION_SOS";
LogView mLogView;
Toolbar mToolbar;
//Toolbar mToolbar;
CheckBox cbMainService;
MainServiceBean mMainServiceBean;
ViewPager viewPager;
private TabLayout tabLayout;
private ViewPager viewPager;
private List<View> views; //用来存放放进ViewPager里面的布局
//实例化存储imageView导航原点的集合
ImageView[] imageViews;
@ -67,19 +71,19 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct
@Override
public APPInfo getAppInfo() {
// String szBranchName = "contacts";
// String szBranchName = "positions";
//
// APPInfo appInfo = AboutActivityFactory.buildDefaultAPPInfo();
// appInfo.setAppName("Contacts");
// appInfo.setAppName("Positions");
// appInfo.setAppIcon(cc.winboll.studio.libapputils.R.drawable.ic_winboll);
// appInfo.setAppDescription("Contacts Description");
// appInfo.setAppDescription("Positions Description");
// appInfo.setAppGitName("APP");
// appInfo.setAppGitOwner("Studio");
// appInfo.setAppGitAPPBranch(szBranchName);
// appInfo.setAppGitAPPSubProjectFolder(szBranchName);
// appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=Contacts");
// appInfo.setAppAPKName("Contacts");
// appInfo.setAppAPKFolderName("Contacts");
// appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=Positions");
// appInfo.setAppAPKName("Positions");
// appInfo.setAppAPKFolderName("Positions");
// return appInfo;
return null;
}
@ -92,72 +96,97 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化工具栏
mToolbar = findViewById(R.id.activitymainToolbar1);
setSupportActionBar(mToolbar);
if (isEnableDisplayHomeAsUp()) {
// 显示后退按钮
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
getSupportActionBar().setSubtitle(getTag());
initData();
initView();
//initPoint();//调用初始化导航原点的方法
viewPager.addOnPageChangeListener(this);//滑动事件
ViewPager viewPager = findViewById(R.id.activitymainViewPager1);
MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
TabLayout tabLayout = findViewById(R.id.activitymainTabLayout1);
tabLayout.setupWithViewPager(viewPager);
// mMainServiceBean = MainServiceBean.loadBean(this, MainServiceBean.class);
// if (mMainServiceBean == null) {
// mMainServiceBean = new MainServiceBean();
// // 初始化工具栏
// mToolbar = findViewById(R.id.toolbar);
// setSupportActionBar(mToolbar);
// if (isEnableDisplayHomeAsUp()) {
// // 显示后退按钮
// getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// }
// cbMainService = findViewById(R.id.activitymainCheckBox1);
// cbMainService.setChecked(mMainServiceBean.isEnable());
// cbMainService.setOnClickListener(new View.OnClickListener(){
// @Override
// public void onClick(View view) {
// if (cbMainService.isChecked()) {
// MainService.startMainService(MainActivity.this);
// } else {
// MainService.stopMainService(MainActivity.this);
// }
// }
// });
MainService.startMainService(Main2Activity.this);
}
// getSupportActionBar().setSubtitle(getTag());
// 初始化地图视图
// 创建Fragment实例
TXMSFragment myFragment = TXMSFragment.newInstance(0);
// 获取FragmentTransaction
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// 将Fragment添加到FrameLayout容器中
transaction.add(R.id.frameLayout, myFragment);
transaction.commit();
tabLayout = findViewById(R.id.tabLayout);
viewPager = findViewById(R.id.viewPager);
// 创建Fragment列表和标题列表
List<Fragment> fragmentList = new ArrayList<>();
List<String> tabTitleList = new ArrayList<>();
fragmentList.add(PositionsFragment.newInstance(0));
fragmentList.add(TasksFragment.newInstance(1));
fragmentList.add(LogFragment.newInstance(2));
tabTitleList.add("位置");
tabTitleList.add("任务");
tabTitleList.add("日志");
// 设置ViewPager的适配器
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), fragmentList, tabTitleList);
viewPager.setAdapter(adapter);
// 关联TabLayout和ViewPager
tabLayout.setupWithViewPager(viewPager);
}
// ViewPager的适配器
private class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> tabTitleList;
public MyPagerAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> tabTitleList) {
super(fm);
this.fragmentList = fragmentList;
this.tabTitleList = tabTitleList;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitleList.get(position);
}
}
//初始化view即显示的图片
void initView() {
viewPager = findViewById(R.id.activitymainViewPager1);
pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
//adapter = new MyPagerAdapter(views);
//viewPager = findViewById(R.id.activitymainViewPager1);
//viewPager.setAdapter(adapter);
//linearLayout = findViewById(R.id.activitymainLinearLayout1);
//initPoint();//初始化页面下方的点
viewPager.setOnPageChangeListener(this);
}
// void initViewPager() {
// pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
// mViewPager.setAdapter(pagerAdapter);
// //adapter = new MyPagerAdapter(views);
// //viewPager = findViewById(R.id.activitymainViewPager1);
// //viewPager.setAdapter(adapter);
// //linearLayout = findViewById(R.id.activitymainLinearLayout1);
// //initPoint();//初始化页面下方的点
// mViewPager.setOnPageChangeListener(this);
// }
//初始化所要显示的布局
void initData() {
ViewPager viewPager = findViewById(R.id.activitymainViewPager1);
LayoutInflater inflater = LayoutInflater.from(getActivity());
View view1 = inflater.inflate(R.layout.fragment_gms, viewPager, false);
View view2 = inflater.inflate(R.layout.fragment_contacts, viewPager, false);
View view3 = inflater.inflate(R.layout.fragment_log, viewPager, false);
views = new ArrayList<>();
views.add(view1);
views.add(view2);
views.add(view3);
}
// void initLayoutData() {
// LayoutInflater inflater = LayoutInflater.from(getActivity());
// View view1 = inflater.inflate(R.layout.fragment_gms, mViewPager, false);
// View view2 = inflater.inflate(R.layout.fragment_contacts, mViewPager, false);
// View view3 = inflater.inflate(R.layout.fragment_log, mViewPager, false);
//
// views = new ArrayList<>();
// views.add(view1);
// views.add(view2);
// views.add(view3);
// }
// void initPoint() {
// imageViews = new ImageView[5];//实例化5个图片
@ -225,51 +254,6 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct
LogUtils.d(TAG, "onDestroy() SOS");
}
//
// 处理传入的 Intent 数据
//
// boolean prosessIntents(Intent intent) {
// if (intent == null
// || intent.getAction() == null
// || intent.getAction().equals(""))
// return false;
//
// if (intent.getAction().equals(StringToQrCodeView.ACTION_UNITTEST_QRCODE)) {
// try {
// WinBollActivity clazzActivity = UnitTestActivity.class.newInstance();
// String tag = clazzActivity.getTag();
// LogUtils.d(TAG, "String tag = clazzActivity.getTag(); tag " + tag);
// Intent subIntent = new Intent(this, UnitTestActivity.class);
// subIntent.setAction(intent.getAction());
// File file = new File(getCacheDir(), UUID.randomUUID().toString());
// //取出文件uri
// Uri uri = intent.getData();
// if (uri == null) {
// uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
// }
// //获取文件真实地址
// String szSrcPath = UriUtils.getFileFromUri(getApplication(), uri);
// if (TextUtils.isEmpty(szSrcPath)) {
// return false;
// }
//
// Files.copy(Paths.get(szSrcPath), Paths.get(file.getPath()));
// //startWinBollActivity(subIntent, tag);
// WinBollActivityManager.getInstance(this).startWinBollActivity(this, subIntent, UnitTestActivity.class);
// } catch (IllegalAccessException | InstantiationException | IOException e) {
// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
// // 函数处理异常返回失败
// return false;
// }
// } else {
// LogUtils.d(TAG, "prosessIntents|" + intent.getAction() + "|yet");
// return false;
// }
// return true;
// }
@Override
public String getTag() {
return TAG;
@ -277,7 +261,7 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct
@Override
public Toolbar initToolBar() {
return findViewById(R.id.activitymainToolbar1);
return findViewById(R.id.toolbar);
}
@Override
@ -386,7 +370,7 @@ final public class MainSimpleActivity extends AbsActivity implements IWinBollAct
// }
if (requestCode == DIALER_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
Toast.makeText(Main2Activity.this, getString(R.string.app_name) + " 已成为默认电话应用",
Toast.makeText(MainActivity.this, getString(R.string.app_name) + " 已成为默认电话应用",
Toast.LENGTH_SHORT).show();
}
}

View File

@ -9,29 +9,30 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import cc.winboll.studio.positions.fragments.GmsFragment;
import cc.winboll.studio.positions.fragments.ContactsFragment;
import cc.winboll.studio.positions.fragments.TasksFragment;
import cc.winboll.studio.positions.fragments.PositionsFragment;
import cc.winboll.studio.positions.fragments.LogFragment;
public class MyPagerAdapter extends FragmentPagerAdapter {
public static final String TAG = "MyPagerAdapter";
public class MyPagerAdapter2 extends FragmentPagerAdapter {
public static final String TAG = "MyPagerAdapter2";
private static final int PAGE_COUNT = 3;
public MyPagerAdapter(@NonNull FragmentManager fm) {
public MyPagerAdapter2(@NonNull FragmentManager fm) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}
@NonNull
@Override
public Fragment getItem(int position) {
if(position == 1) {
return ContactsFragment.newInstance(position);
} else if(position == 2) {
return LogFragment.newInstance(position);
} else {
return GmsFragment.newInstance(position);
}
// if(position == 0) {
// return PositionsFragment.newInstance(position);
// } else if(position == 1) {
// return TasksFragment.newInstance(position);
// } else {
// return LogFragment.newInstance(position);
// }
return null;
}
@Override

View File

@ -1,111 +0,0 @@
package cc.winboll.studio.positions.fragments;
/**
* @Author ZhanGSKen@AliYun.Com
* @Date 2025/02/20 12:57:00
* @Describe 拨号
*/
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
import cc.winboll.studio.positions.R;
import cc.winboll.studio.libappbase.LogView;
import androidx.annotation.Nullable;
import androidx.annotation.NonNull;
import android.graphics.Color;
import android.widget.TextView;
import cc.winboll.studio.positions.views.GridMapView;
import com.tencent.tencentmap.mapsdk.maps.MapView;
import com.tencent.tencentmap.mapsdk.maps.TencentMap;
import com.tencent.tencentmap.mapsdk.maps.TextureMapView;
public class GmsFragment extends Fragment {
public static final String TAG = "GmsFragment";
private static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
private TextureMapView mapView;
protected TencentMap tencentMap;
public static GmsFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
GmsFragment fragment = new GmsFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments()!= null) {
mPage = getArguments().getInt(ARG_PAGE);
}
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_gms, container, false);
// // 初始化视图
// GridMapView mapView = (GridMapView) view.findViewById(R.id.map_view);
//
// // 设置网格参数
// mapView.setGridParameters(10000f, 10000f, 10f);
//
// // 初始化显示区域中心点400,300显示范围2000x200
// mapView.initViewport(5000f, 5000f, 1000f, 1000f);
//
// // 绘制图形
// mapView.drawPoint(5000f, 5000f, Color.RED, 8f);
// mapView.drawCircle(5000f, 5000f, 50f, Color.BLUE, 8f);
// mapView.drawLine(4975f, 4975f, 5025f, 5025f, Color.GREEN, 2f);
// 初始化地图视图
mapView = view.findViewById(R.id.mapView);
mapView.setOpaque(false);
//创建tencentMap地图对象可以完成对地图的几乎所有操作
tencentMap = mapView.getMap();
return view;
}
/**
* mapview的生命周期管理
*/
@Override
public void onStart() {
super.onStart();
mapView.onStart();
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onStop() {
super.onStop();
mapView.onStop();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}

View File

@ -14,18 +14,19 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import cc.winboll.studio.positions.R;
import androidx.appcompat.widget.Toolbar;
public class ContactsFragment extends Fragment {
public class PositionsFragment extends Fragment {
public static final String TAG = "ContactsFragment";
private static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
public static ContactsFragment newInstance(int page) {
public static PositionsFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
ContactsFragment fragment = new ContactsFragment();
PositionsFragment fragment = new PositionsFragment();
fragment.setArguments(args);
return fragment;
}
@ -42,9 +43,10 @@ public class ContactsFragment extends Fragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_contacts, container, false);
TextView textView = view.findViewById(R.id.page_text);
textView.setText("这是第 " + mPage + "");
return view;
View viewMain = inflater.inflate(R.layout.fragment_positions, container, false);
Toolbar toolbar = viewMain.findViewById(R.id.toolbar);
getActivity().getMenuInflater().inflate(R.menu.toolbar_positions, toolbar.getMenu());
return viewMain;
}
}

View File

@ -71,10 +71,11 @@ import com.tencent.tencentmap.mapsdk.maps.TencentMap;
import com.tencent.tencentmap.mapsdk.maps.TextureMapView;
public class TXMSFragment extends Fragment implements EasyPermissions.PermissionCallbacks,LocationSource, TencentLocationListener {
public static final String TAG = "TXMSFragment";
private static final int PERMISSION_REQUEST_CODE = 1;
private static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
private TextureMapView mapView;
@ -90,7 +91,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
public static TXMSFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
TXMSFragment fragment = new GmsFragment();
TXMSFragment fragment = new TXMSFragment();
fragment.setArguments(args);
return fragment;
}
@ -98,7 +99,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments()!= null) {
if (getArguments() != null) {
mPage = getArguments().getInt(ARG_PAGE);
}
}
@ -107,14 +108,11 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View viewRoot = inflater.inflate(R.layout.fragment_gms, container, false);
View viewRoot = inflater.inflate(R.layout.fragment_txms, container, false);
locationJsonList = new ArrayList<LocationJson>();
mLogView = viewRoot.findViewById(R.id.logview);
mLogView.start();
TencentMapInitializer.setAgreePrivacy(this, true);
TencentMapInitializer.start(this);
TencentMapInitializer.setAgreePrivacy(getActivity(), true);
TencentMapInitializer.start(getActivity());
TencentLocationManager.setUserAgreePrivacy(true);
@ -123,13 +121,13 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
//创建tencentMap地图对象可以完成对地图的几乎所有操作
tencentMap = mapView.getMap();
FloatingActionButton fab = viewRoot.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "点击了悬浮按钮", Snackbar.LENGTH_LONG).show();
}
});
// FloatingActionButton fab = viewRoot.findViewById(R.id.fab);
// fab.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// Snackbar.make(view, "点击了悬浮按钮", Snackbar.LENGTH_LONG).show();
// }
// });
mtvInfo = viewRoot.findViewById(R.id.tv_info);
@ -169,10 +167,11 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
}
});
loadLocations();
return viewRoot;
}
void loadLocations() {
// 存储位置数据
// Location location = new Location("gps");
@ -186,7 +185,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
// LocationFileStorage.saveToFile(this, locations);
// 读取数据
locationJsonList = LocationFileStorage.loadFromFile(this);
locationJsonList = LocationFileStorage.loadFromFile(getActivity());
for (LocationJson lj : locationJsonList) {
tencentMap.addMarker(new MarkerOptions(toTencentLatLng(lj.toLocation())));
@ -204,7 +203,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
// 方式1保存到文件
//List<Location> locations = new ArrayList<>();
locationJsonList.add(new LocationJson(location));
LocationFileStorage.saveToFile(this, locationJsonList);
LocationFileStorage.saveToFile(getActivity(), locationJsonList);
// 读取数据
// List<Location> loaded = LocationFileStorage.loadFromFile(this);
@ -282,18 +281,6 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
super.onDestroy();
mapView.onDestroy();
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// LatLng center = new LatLng(39.904556, 116.427242);
// tencentMap.moveCamera(
// CameraUpdateFactory.newLatLngZoom(center, 13f) // 注意 13 13f
// );
loadLocations();
}
/**
* 设置定位图标样式
@ -334,7 +321,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
*/
private void initLocation() {
//用于访问腾讯定位服务的类, 周期性向客户端提供位置更新
locationManager = TencentLocationManager.getInstance(this);
locationManager = TencentLocationManager.getInstance(getActivity());
//设置坐标系
locationManager.setCoordinateType(TencentLocationManager.COORDINATE_TYPE_GCJ02);
//创建定位请求
@ -369,7 +356,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
locationChangedListener.onLocationChanged(location);
//显示回调的实时位置信息
runOnUiThread(new Runnable() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// Rules.getEffectInfo(location);
@ -401,13 +388,13 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
int err = locationManager.requestLocationUpdates(locationRequest, this, Looper.myLooper());
switch (err) {
case 1:
Toast.makeText(this, "设备缺少使用腾讯定位服务需要的基本条件", Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "设备缺少使用腾讯定位服务需要的基本条件", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this, "manifest 中配置的 key 不正确", Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "manifest 中配置的 key 不正确", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(this, "自动加载libtencentloc.so失败", Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "自动加载libtencentloc.so失败", Toast.LENGTH_SHORT).show();
break;
default:
@ -434,9 +421,9 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
}
private void checkLocationPermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(),
new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},
PERMISSION_REQUEST_CODE);
} else {
@ -452,10 +439,10 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
//startLocationUpdates();
} else {
// 用户拒绝了权限请求
Toast.makeText(this, "请授予定位权限", Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "请授予定位权限", Toast.LENGTH_SHORT).show();
}
}
}
}

View File

@ -0,0 +1,59 @@
package cc.winboll.studio.positions.fragments;
/**
* @Author ZhanGSKen@AliYun.Com
* @Date 2025/02/20 12:57:00
* @Describe 拨号
*/
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
import cc.winboll.studio.positions.R;
import cc.winboll.studio.libappbase.LogView;
import androidx.annotation.Nullable;
import androidx.annotation.NonNull;
import android.graphics.Color;
import android.widget.TextView;
import cc.winboll.studio.positions.views.GridMapView;
import com.tencent.tencentmap.mapsdk.maps.MapView;
import com.tencent.tencentmap.mapsdk.maps.TencentMap;
import com.tencent.tencentmap.mapsdk.maps.TextureMapView;
import androidx.appcompat.widget.Toolbar;
public class TasksFragment extends Fragment {
public static final String TAG = "GmsFragment";
private static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
public static TasksFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
TasksFragment fragment = new TasksFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments()!= null) {
mPage = getArguments().getInt(ARG_PAGE);
}
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View viewMain = inflater.inflate(R.layout.fragment_tasks, container, false);
Toolbar toolbar = viewMain.findViewById(R.id.toolbar);
getActivity().getMenuInflater().inflate(R.menu.toolbar_tasks, toolbar.getMenu());
return viewMain;
}
}

View File

@ -7,21 +7,21 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/activitymainToolbar1"/>
android:layout_height="400dp"
android:id="@+id/frameLayout"/>
<androidx.viewpager.widget.ViewPager
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.0"
android:id="@+id/activitymainViewPager1"/>
android:id="@+id/viewPager"/>
<com.google.android.material.tabs.TabLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:id="@+id/activitymainTabLayout1"/>
android:id="@+id/tabLayout"/>
</LinearLayout>

View File

@ -5,8 +5,10 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<cc.winboll.studio.libappbase.LogView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/logview"/>
<cc.winboll.studio.libappbase.LogView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/logview"/>
</LinearLayout>

View File

@ -6,10 +6,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/toolbar"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:id="@+id/page_text"/>
android:text="fragment_positions"/>
</LinearLayout>

View File

@ -6,10 +6,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.tencent.tencentmap.mapsdk.maps.TextureMapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/toolbar"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="fragment_tasks"/>
</LinearLayout>

View File

@ -6,16 +6,9 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/activitymainToolbar1"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.0">
android:layout_height="match_parent">
<com.tencent.tencentmap.mapsdk.maps.TextureMapView
android:id="@+id/mapview"
@ -35,17 +28,7 @@
</TextView>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_margin="16dp"
android:src="@drawable/ic_location_searching"
app:backgroundTint="@color/colorPrimary"
android:layout_alignParentTop="true"/>
</RelativeLayout>
</LinearLayout>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_addposition"
android:title="AddPositions"
app:showAsAction="ifRoom" />
</menu>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_addtask"
android:title="AddTask"
app:showAsAction="ifRoom" />
</menu>