Android继承AppCompatActivity后实现全屏设置

现在越来越多的Android开发人员使用Android studio,使用Android studio创建新项目后Activity默认继承的是AppCompatActivity(我用的Android studio 版本是1.5.1)。那么问题来了,在此种情况下Activity该如何设置全屏呢?

好多人都知道设置全屏的方式有两种:

一、在manifest.xml文件里面设置notitle的主题:

二、在代码中设置:

requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题栏,只去掉这一行不行,还有信息栏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //去掉信息栏,设置全屏

注意:两行代码还必须写在setContentView()前面。

可能有人发现继承AppCompatActivity后用上面的两种方法设置,会报错。是的上面的两种方法是继承Activity时设置全屏的方法,而继承AppCompatActivity的解决方法是用主题的形式设置全屏。方法如下:

在stytles文件中设置如下代码:

<style name="NotitleTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
</style>

这样设置就可以实现全屏了。



Android系统全屏实现左右滑动图片,可采用以下方法: ### 全屏设置实现全屏显示,可在Activity的`onCreate`方法中设置全屏标志。示例代码如下: ```java import android.os.Bundle; import android.view.Window; import android.view.WindowManager; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); // 设置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); } } ``` ### 使用ViewPager2实现左右滑动图片 ViewPager2是一个强大的视图滑动组件,可用于实现图片的左右滑动。以下是具体步骤: 1. **添加依赖**:在`build.gradle`文件中添加ViewPager2的依赖。 ```groovy implementation 'androidx.viewpager2:viewpager2:1.1.0' ``` 2. **布局文件**:在`activity_main.xml`中添加ViewPager2。 ```xml <androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewPager2" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. **创建Adapter**:创建一个继承自`RecyclerView.Adapter`的适配器,用于为ViewPager2提供图片数据。 ```java import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> { private List<Integer> imageList; public ImageAdapter(List<Integer> imageList) { this.imageList = imageList; } @NonNull @Override public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); return new ImageViewHolder(view); } @Override public void onBindViewHolder(@NonNull ImageViewHolder holder, int position) { holder.imageView.setImageResource(imageList.get(position)); } @Override public int getItemCount() { return imageList.size(); } public static class ImageViewHolder extends RecyclerView.ViewHolder { ImageView imageView; public ImageViewHolder(@NonNull View itemView) { super(itemView); imageView = itemView.findViewById(android.R.id.text1); } } } ``` 4. **设置ViewPager2**:在Activity设置ViewPager2的适配器。 ```java import android.os.Bundle; import android.view.Window; import android.view.WindowManager; import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager2.widget.ViewPager2; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); // 设置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); ViewPager2 viewPager2 = findViewById(R.id.viewPager2); List<Integer> imageList = new ArrayList<>(); // 添加图片资源 imageList.add(R.drawable.image1); imageList.add(R.drawable.image2); ImageAdapter adapter = new ImageAdapter(imageList); viewPager2.setAdapter(adapter); } } ``` ### 使用PhotoView实现图片缩放和左右滑动 如果需要实现图片的缩放功能,可使用`PhotoView`库。 1. **添加依赖**:在`build.gradle`文件中添加`PhotoView`的依赖。 ```groovy implementation 'com.github.chrisbanes:PhotoView:2.3.0' ``` 2. **修改Adapter**:在Adapter中使用`PhotoView`替代`ImageView`。 ```java import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.github.chrisbanes.photoview.PhotoView; import java.util.List; public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> { private List<Integer> imageList; public ImageAdapter(List<Integer> imageList) { this.imageList = imageList; } @NonNull @Override public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false); return new ImageViewHolder(view); } @Override public void onBindViewHolder(@NonNull ImageViewHolder holder, int position) { holder.photoView.setImageResource(imageList.get(position)); } @Override public int getItemCount() { return imageList.size(); } public static class ImageViewHolder extends RecyclerView.ViewHolder { PhotoView photoView; public ImageViewHolder(@NonNull View itemView) { super(itemView); photoView = itemView.findViewById(R.id.photoView); } } } ``` 3. **布局文件**:在`item_image.xml`中添加`PhotoView`。 ```xml <com.github.chrisbanes.photoview.PhotoView android:id="@+id/photoView" android:layout_width="match_parent" android:layout_height="match_parent" /> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值