setFlags demo
时间: 2023-07-23 19:26:28 浏览: 88
好的,这是一个简单的 setFlags 示例:
```java
public class SetFlagsDemo {
public static void main(String[] args) {
int flags = 0;
// 设置第一位为1
flags |= 1;
// 设置第三位为1
flags |= (1 << 2);
// 取消第一位的设置
flags &= ~1;
// 判断第二位是否设置
if ((flags & (1 << 1)) != 0) {
System.out.println("第二位已经设置");
}
}
}
```
这段代码中,我们使用一个 int 类型的变量 flags 来表示一些状态标记。我们使用位运算符来对 flags 进行设置和判断。其中,| 表示按位或运算,& 表示按位与运算,~ 表示按位取反运算,<< 表示左移运算。
在这个示例中,我们首先将 flags 的第一位设置为 1,然后将第三位设置为 1。接着,我们取消了第一位的设置,并判断第二位是否设置。如果第二位已经设置,就输出一条信息。
相关问题
setFlags函数的调用demo
好的,这是一个简单的 setFlags 函数调用示例:
```java
public class SetFlagsDemo {
public static void main(String[] args) {
int flags = 0;
// 设置第一位和第三位为1
flags = setFlags(flags, 1, 3);
// 取消第一位的设置
flags = unsetFlags(flags, 1);
// 判断第二位是否设置
if (hasFlags(flags, 2)) {
System.out.println("第二位已经设置");
}
}
public static int setFlags(int flags, int... positions) {
for (int pos : positions) {
flags |= (1 << pos);
}
return flags;
}
public static int unsetFlags(int flags, int... positions) {
for (int pos : positions) {
flags &= ~(1 << pos);
}
return flags;
}
public static boolean hasFlags(int flags, int... positions) {
for (int pos : positions) {
if ((flags & (1 << pos)) == 0) {
return false;
}
}
return true;
}
}
```
在这个示例中,我们定义了三个函数 setFlags、unsetFlags 和 hasFlags 来对 flags 进行设置、取消设置和判断操作。这些函数的实现方式与上一个示例中的代码类似,只不过我们将这些操作封装成了函数,方便我们在代码中调用。
在主函数中,我们先调用 setFlags 函数将第一位和第三位设置为 1,然后调用 unsetFlags 函数取消第一位的设置。最后,我们调用 hasFlags 函数判断第二位是否设置。如果第二位已经设置,就输出一条信息。
android 独立移动窗口 demo
在Android中创建独立的移动窗口(Floating Window)通常是指通过自定义Activity并设置其`android:theme="@style/Theme.Translucent.NoTitleBar.Fullscreen"`来实现悬浮显示,这个样式会使得Activity不包含标题栏,并使其透明地悬浮于其他应用之上。以下是简单的步骤和代码示例:
1. 创建一个新的Android项目,选择Empty Activity作为起点。
2. 在`res/values/styles.xml`中添加新的主题:
```xml
<style name="CustomWindowTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
```
3. 修改新Activity的布局文件(例如activity_main.xml),去掉默认的`<content>`标签,添加布局内容:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 在这里放置你的自定义View或Layout -->
</LinearLayout>
```
4. 在MainActivity.java中设置窗口的主题:
```java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建浮动窗口
MyFloatWindow floatWindow = new MyFloatWindow(this);
// 设置浮窗属性如大小、位置等
floatWindow.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
// 显示浮窗
floatWindow.showAtLocation(findViewById(android.R.id.content), Gravity.TOP | Gravity.LEFT, 0, 0);
}
}
class MyFloatWindow extends AppCompatActivity {
public MyFloatWindow(Context context) {
super(context, null, R.style.CustomWindowTheme);
}
// 其他浮窗操作...
}
```
阅读全文