Android Studio 在react-native中以编程方式更改应用程序图标,如何在react-native中通过单击按钮更改应用程序图标(iOS和Android都有)

oewdyzsn  于 2022-11-16  发布在  Android
关注(0)|答案(1)|浏览(115)

如何在react-native中点击按钮时更改应用程序图标(iOS和Android都有)
一个月一次x一个月一次x一个月二次x一个月三次x一个月四次x一个月五次x一个月六次x一个月七次x一个月八次x一个月九次x一个月十次

// disable new icon
        manager.setComponentEnabledSetting(
                new ComponentName(appContext, "com.sample.MainActivityAlias"),
                PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
        map.putString("successMsg", "Icon changed to default successfully");
        promise.resolve(map);
    } catch (Exception e) {
        e.printStackTrace();
        promise.reject("EXCEPTION", e);
    }
}

@ReactMethod
public void setNewIcon(Promise promise) {
    String defaultPackageName = "NOT_FOUND";
    try {
        WritableMap map = Arguments.createMap();
        defaultPackageName = appContext.getPackageName() + ".MainActivity";
        String newPackageName = defaultPackageName + "Alias";
        // disable old icon
        PackageManager manager = appContext.getPackageManager();
        manager.setComponentEnabledSetting(new ComponentName(appContext, "com.sample.MainActivity"),
                PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

        // enable new icon
        manager.setComponentEnabledSetting(
                new ComponentName(appContext, "com.sample.MainActivityAlias"),
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
        map.putString("successMsg", "Icon changed successfully");
        promise.resolve(map);
    } catch (Exception e) {
        e.printStackTrace();
        promise.reject("EXCEPTION", e);
    }
}

x 1个月11个月1个月12个月1个月1个月13个月1个月1个月14个月1个月1个月15个月1个月1个月16个月1个月1个月17个月1个月18个月1个月1个月19个月1个月20个月1个月21个月1个月22个月1个月23个月1个月

n53p2ov0

n53p2ov01#

我不认为你需要在java端做它。我认为你可以这样做:

<TouchableOpacity onPress={handlePress} >
  <Image source={imgSource}
</TouchableOpacity>

可以将imgSource存储在state中,然后更改handlePress中的变量,如下所示:

import img1 from '...'
import img2 from '...'
const [imgSource, setImgSource] = useState(img1);

const handlePress = () => {
  setImgSource(img2);
  //or whatever logic you would like :)
}

相关问题