如何更改安卓系统软件图标和名称

如何更改安卓系统软件图标和名称,第1张

若使用的是vivo手机,软件名称是不可以进行修改的。

修改软件图标的方法:

进入手机设置--锁屏、桌面与壁纸--桌面设置--(图标风格)--图标圆角/图标样式中设置;若设置中没有此路径:可以进入手机i主题--主题--下载其他主题应用来更改软件图标

原理 :在Manifest文件中,使用<activity-alias>标签为我们的启动Activity准备多个别名,拥有<activity-alias>标签的activity指向启动Activity,每个拥有<activity-alias>标签的Activity都可以单独设置一个icon,在程序中我们动态设置<activity>和<activity-alias>的enabled属性来实现替换图标效果。

步骤

这个 <activity-alias> 标签需要注意的地方如下:

(1)android:name属性可以随意起。

(2)android:enabled属性要设为false,否则桌面会存在多个APP图标。

(3)android:icon属性设置为不同的图标。

(4)android:targetActivity属性要设为启动的Activity。

(5)添加<intent-filter>那部分来使其作为启动的Activity。

注意setComponentEnabledSetting()方法的第3个参数有两个值供选择:1(也就是PackageManagerDONT_KILL_APP)和0。这两种参数对应两种效果:当设为1时,当切换APP图标时,会有几秒钟的延迟,并且在延迟期间不能点击图标进入APP;当设为0时,当切换APP图标时,会立刻更换,但是应用会被强制退出并被清理掉。

存在的问题

需要将<activity>的enabled属性设为enabled或者将APP卸载后才能编译运行。

需要用到第三方的apk,如:快图软件apk,将其后缀名从apk改为zip:

这时安卓程序就变成了一个zip压缩包,我们选择“解压到”,并打开解压后得到的文件夹,一般里面会有lib、META-INF、res三个文件夹和classesdex、resourcesarsc、xml三个文件:

修改程序图标,我们只需要进入res文件,然后会在drawable-mdpi、drawable-xhdpi、drawable-xxhdpi这三个文件夹里看到该程序的源图标文件,并且图标大小是按顺序增大的

将所想要的图标文件重命名成与程序包里面的图标文件一致,一般都是iconpng,然后替换这些文件夹里的图标,由于程序设计略有差异,为保险起见,我们将drawable-hdpi文件夹里的图标也替换掉,总共替换了四个文件夹里的源程序图标

然后返回到文件夹最开始的目录中,将程序包里原有的3个文件夹、3个文件都选中(全选),右键选择“添加到zip压缩文件”,再将其后缀改回apk,然后用APKDex文件反编译及回编译工具右击选择签名后即可使用,如果电脑可以显示安卓图标,一下子就可以看到图标变了,不行的话到手机端,也可以看到图标已经被成功修改了

1)添加高德SDK

(2)配置AndroidManifest文件

(3)创建地图

(4)控件交互

(5)方法交互

(6)地图截图

(7)添加Marker标记 上面我大致分为了7部分,其中第(1)、(2)部分在高德定位的博客中有说,本篇就不再多述。不同的地方就是我们需要添加地图的SDK以及armebi文件:

ok,下面正式进入地图的使用。

(1)创建地图:即在XML中添加即可。

android:id="@+id/mapview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

然后重写Activity的生命周期方法,并在其中调用MapView相对的生命周期方法:

@Override

protected void onCreate() {

mMapView = (MapView) findViewById(Ridmapview);

mMapViewonCreate(savedInstanceState);//此方法必须重写

if(mMap == null) {

mMap = mMapViewgetMap();

}

// 地图模式可选类型:

// MAP_TYPE_NORMAL:普通模式(默认)

// MAP_TYPE_SATELLITE:卫星地图模式

// MAP_TYPE_NIGHT:夜间模式

// mMapsetMapType(AMapMAP_TYPE_SATELLITE);

}

@Override

protected void onResume() {

superonResume();

mMapViewonResume();

}

@Override

protected void onPause() {

superonPause();

mMapViewonPause();

}

@Override

protected void onDestroy() {

superonDestroy();

mMapViewonDestroy();

}

(2)控件交互:高德允许我们在地图上显示一些交互的控件。

mUiSettings = mMapgetUiSettings();

//控制定位到当前按钮的显示和隐藏

mUiSettingssetMyLocationButtonEnabled(true);

//控制缩放控件的显示和隐藏。

mUiSettingssetZoomControlsEnabled(true);

//控制指南针的显示和隐藏。

mUiSettingssetCompassEnabled(true);

//显示比例尺控件:例如1:10Km

mUiSettingssetScaleControlsEnabled(true);

(3)方法交互:

1改变地图中心点

CameraUpdate cameraUpdate = CameraUpdateFactorynewCameraPosition(

new CameraPosition(new LatLng(39977290,116337000),//新的中心点坐标

18, //新的缩放级别

30, //俯仰角0°~45°(垂直与地图时为0)

0  偏航角 0~360° (正北方为0)

));

改变地图中心点有两种方式:

(1)平滑地移动地图:第二个参数为移动时长

mMapanimateCamera(cameraUpdate, 1000, new AMapCancelableCallback() {

@Override

public void onFinish() {

}

@Override

public void onCancel() {

}

});

(2)直接应用新的视图

mMapmoveCamera(cameraUpdate);

2改变地图缩放级别

zoomTo是缩放地图到指定的缩放级别,ZoomIn是缩放地图到当前缩放级别的上一级

mMapmoveCamera(CameraUpdateFactoryzoomTo(17));//将地图的缩放级别调整到17级

(4)地图截取:高德提供了地图截取功能,可以在截取后获取到Bitmap

mMapgetMapScreenShot(new AMapOnMapScreenShotListener() {

@Override

public void onMapScreenShot(Bitmap bitmap) {

}

@Override

public void onMapScreenShot(Bitmap bitmap, int i) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

if(null == bitmap){

return;

}

//保存截图

try {

FileOutputStream fos = new FileOutputStream(

EnvironmentgetExternalStorageDirectory() + "/test_"

+ sdfformat(new Date()) + "png");

boolean b = bitmapcompress(BitmapCompressFormatPNG, 100, fos);

try {

fosflush();

} catch (IOException e) {

eprintStackTrace();

}

try {

fosclose();

} catch (IOException e) {

eprintStackTrace();

}

StringBuffer buffer = new StringBuffer();

if (b)

bufferappend("截屏成功 ");

else {

bufferappend("截屏失败 ");

}

if (i != 0)

bufferappend("地图渲染完成,截屏无网格");

else {

bufferappend( "地图未渲染完成,截屏有网格");

}

//ToastUtilshow(ScreenShotActivitythis, buffertoString());

} catch (FileNotFoundException e) {

eprintStackTrace();

}

}

});

(5)添加Marker标记。

LatLng latLng = new LatLng(39906901,116397972);

Marker marker = mMapaddMarker(new MarkerOptions()

draggable(true)//可拖拽

setFlat(true)//将Marker设置为贴地显示,可以双指下拉看效果

icon(BitmapDescriptorFactory

fromResource(Rdrawableic_location_mark))//Marker图标

title("marker标记")//标题

position(latLng));

//显示InfoWindow

if(!markerisInfoWindowShown()) {

markershowInfoWindow();

}

//Marker点击事件

mMapsetOnMarkerClickListener(new AMapOnMarkerClickListener() {

@Override

public boolean onMarkerClick(Marker arg0) {

return false;

}

});

ainfiniteactivity查看应用配置方法如下:

Android中桌面显示的图标和名字的规则是:如果默认Activity中配置了android:icon,则桌面图标会显示成该配置对应的图像,如果默认Activity中没有配置android:icon,则会使用Application下的android:icon配置。

同样如果默认Activity中配置了android:label,则桌面图标会显示成该配置对应的名字,如果默认Activity中没有配置android:label,则会使用Application下的android:label配置。因此,在上述例子中,应用安装后在桌面上显示的图标就是@drawable/activity_icon对应的图像,显示的名字是@string/acitivity_name对应的字符串。

特别的,如果默认Activity和Application下都没有配置android:icon,则桌面会显示一个系统的默认图标。这通常是一个Android机器人。如果默认Activity和Application下都没有配置android:label,则会将默认Activity的类名作为名字来显示。

多个默认Activity配置下的桌面图标和名字

如果配置了多个默认Activity,则应用安装后会在桌面上会显示多个图标和名字,有多少个默认Activity就显示多少个图标和名字,每个默认Activity对应一个图标和名字。

各个默认Activity的图标和名字显示的规则和一个默认Activity配置是一样的。也就是一个默认Activity的图标会优先使用该Activity节点下的android:icon配置,如果没有,再使用Application下的android:icon配置,如果还没有,则使用系统默认图标。

一个默认Activity的名字会优先使用该Activity节点下的android:label配置,如果没有,再使用Application下的android:label配置,如果还没有,则使用应用包名。

以上就是关于如何更改安卓系统软件图标和名称全部的内容,包括:如何更改安卓系统软件图标和名称、Android开发:如何动态更换APP图标、怎么把手机软件图标换成自己想要的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9774481.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存