小编Suj*_*ana的帖子

如何在android活动中永久隐藏导航栏?

我想在我的活动中永久隐藏导航栏(不是整个系统ui).现在我正在使用这段代码

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)

它隐藏了栏,但当用户触摸屏幕时,它再次显示.是否有任何方法可以永久隐藏它直到活动onStop();

android fullscreen navigationbar

66
推荐指数
5
解决办法
11万
查看次数

如何以编程方式创建一个admob横幅?

如何使用代码创建一个admob智能横幅?我的布局完全用代码构建.

android admob

22
推荐指数
1
解决办法
2万
查看次数

如何在Android中使用SurfaceView附加MediaPlayer?

我正在用Android媒体播放器对象构建视频播放器.我能够听到音频,但视频没有出现在surfaceView上.这是我的代码

public class PlayerActivity extends Activity implements SurfaceHolder.Callback {
    String path;
    private MediaPlayer mp;
    private SurfaceView mPreview;
    private SurfaceHolder holder;
    boolean pausing = false;
    public static String filepath;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_player);

        getWindow().setFormat(PixelFormat.UNKNOWN);
        mPreview = (SurfaceView)findViewById(R.id.surfaceView);
        holder = mPreview.getHolder();
        holder.setFixedSize(176, 144);
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        mp = new MediaPlayer();

        mp.setDisplay(holder);
        try {
            Intent intent = getIntent();
            Uri fileuri = intent.getData();
            filepath=fileuri.getPath();
        } catch(Exception e) {}

        try {
            mp.setDataSource(filepath);
            mp.prepare();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalStateException …
Run Code Online (Sandbox Code Playgroud)

android surfaceview media-player surfaceholder

12
推荐指数
1
解决办法
3万
查看次数

Socket.io 扩展问题

我有 3 个 Nodejs 应用程序在带有 Nginx 反向代理的 GCP 计算引擎实例(2cpu、2GB 内存、ubuntu 20.04)上运行。其中之一是 socket.io 聊天服务器。socket.io 应用程序@socket.io/cluster-adapter使用所有可用的 CPU 核心。\n我按照教程更新了 Linux 设置以获得最大连接数。这是命令的输出ulimit

\n
core file size          (blocks, -c) 0\ndata seg size           (kbytes, -d) unlimited\nscheduling priority             (-e) 0\nfile size               (blocks, -f) unlimited\npending signals                 (-i) 7856\nmax locked memory       (kbytes, -l) 65536\nmax memory size         (kbytes, -m) unlimited\nopen files                      (-n) 500000\npipe size            (512 bytes, -p) 8\nPOSIX message queues     (bytes, -q) 819200\nreal-time priority              (-r) 0\nstack size              (kbytes, -s) 8192\ncpu time               (seconds, -t) unlimited\nmax …
Run Code Online (Sandbox Code Playgroud)

scaling nginx websocket socket.io

8
推荐指数
1
解决办法
1828
查看次数

android ffmpeg糟糕的视频输出

我正在按照教程创建我的第一个ffmpeg应用程序.我已成功构建共享库并编译项目而没有任何错误.但是当我在我的nexus 5上运行应用程序时,输出就是这个这个

这是本机代码

#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/pixfmt.h>

#include <stdio.h>
#include <pthread.h>

#include <jni.h>
#include <android/native_window.h>
#include <android/native_window_jni.h>

#define LOG_TAG "android-ffmpeg-tutorial02"
#define LOGI(...) __android_log_print(4, LOG_TAG, __VA_ARGS__);
#define LOGE(...) __android_log_print(6, LOG_TAG, __VA_ARGS__);

ANativeWindow*      window;
char                *videoFileName;
AVFormatContext     *formatCtx = NULL;
int                 videoStream;
AVCodecContext      *codecCtx = NULL;
AVFrame             *decodedFrame = NULL;
AVFrame             *frameRGBA = NULL;
jobject             bitmap;
void*               buffer;
struct SwsContext   *sws_ctx = NULL;
int                 width;
int                 height;
int                 stop;

jint naInit(JNIEnv *pEnv, jobject pObj, jstring pFileName) …
Run Code Online (Sandbox Code Playgroud)

video android ffmpeg android-ndk

7
推荐指数
1
解决办法
2336
查看次数

如何设置交错网格跨度计数以使用可用的屏幕宽度?

我正在使用垂直StaggeredGridLayoutManager来显示一些缩略图.每行包含1英寸宽和150度高的卡片视图.我的问题是如何设置交错网格跨度计数以使用屏幕的可用物理宽度?

CardViewRow.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:orientation="vertical"
    card_view:cardCornerRadius="0dp"
    card_view:cardUseCompatPadding="true" >


   <LinearLayout
       android:gravity="center"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/card_selector"
       android:orientation="vertical">
       <FrameLayout
           android:layout_width="match_parent"
           android:layout_height="match_parent">


       <ImageView
           android:id="@+id/thumbnail"
           android:layout_width="300dp"
           android:layout_height="150dp"
           android:scaleType="centerCrop"/>

           <LinearLayout
               android:weightSum="2"
               android:padding="5dp"
               android:layout_gravity="bottom"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:orientation="horizontal"
               android:background="#80000000">

               <TextView
                   android:id="@+id/size_txt"
                   android:layout_weight="1"
                   android:textSize="12sp"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:textColor="@color/silver"
                   android:gravity="left"/>
               <TextView
                   android:layout_weight="1"
                   android:gravity="right"
                   android:textColor="@color/silver"
                   android:id="@+id/time_txt"
                   android:textSize="12sp"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"/>

           </LinearLayout>
           <View
               android:id="@+id/selector"
               android:visibility="invisible"
               android:background="#950096ff"
               android:layout_width="match_parent"
               android:layout_height="match_parent">

           </View>
       </FrameLayout>
       <TextView
           android:id="@+id/title_txt"
           android:padding="8dp"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:maxLines="5" />
       </LinearLayout>


</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

目前我正在使用此代码.(致谢:mstrengis)

  DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int cardWidth …
Run Code Online (Sandbox Code Playgroud)

android width staggeredgridlayout

7
推荐指数
1
解决办法
2694
查看次数

如何获取android中特定文件夹中的视频文件列表?

如何使用mediastore获取存储在特定文件夹中的视频文件列表?目前我正在使用此代码

package com.example.videolisttest;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;

public class MainActivity extends Activity {
    private Cursor videocursor;
    private int video_column_index;
    ListView videolist;
    int count;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init_phone_video_grid();
    }

    private void init_phone_video_grid() {
        System.gc();
        String[] proj = { MediaStore.Video.Media._ID,
                MediaStore.Video.Media.DATA,
                MediaStore.Video.Media.DISPLAY_NAME,
                MediaStore.Video.Media.SIZE };
        videocursor = …
Run Code Online (Sandbox Code Playgroud)

video android file list mediastore

6
推荐指数
1
解决办法
2万
查看次数

android 12如何通过耳机播放音频?

我正在使用 PeerJS 和 WebView 开发一个 Android 语音通话应用程序。我希望音频通过耳机播放。这是我的代码,

private fun initAudio(){
  am = getSystemService(AUDIO_SERVICE) as AudioManager
  volumeControlStream = AudioManager.STREAM_VOICE_CALL
  am.mode = AudioManager.MODE_IN_COMMUNICATION
  am.isSpeakerphoneOn = false//<= not working in android 12
}

private fun toggleSpeakerMode(){
  am.isSpeakerphoneOn = !am.isSpeakerphoneOn // <= final value is always true in android 12
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在旧版本的 android 上运行良好,但在 android 12(模拟器)上运行不佳。 am.isSpeakerphoneOn在 android 12 中始终如此。我在这里做错了什么吗?或者是模拟器的bug?

android android-audiomanager

6
推荐指数
2
解决办法
2585
查看次数

setOnApplyWindowInsetsListener 导致 statusBarColor 更改

在我的活动中,我为状态栏和导航栏设置了自定义颜色

\n
 <item name="android:statusBarColor" tools:targetApi="l">?attr/mainUIColor</item>\n <item name="android:navigationBarColor" tools:targetApi="l">?attr/mainUIColor</item>\n
Run Code Online (Sandbox Code Playgroud)\n

在这个活动中,我有一个 RecyclerView。我希望当用户打开软键盘时它滚动到底部。下面的代码片段完成了这项工作,

\n
View rootView = findViewById(R.id.chat_root_view).getRootView();\n ViewCompat.setOnApplyWindowInsetsListener(rootView, (v, insets) -> {\n            recyclerView.scrollToPosition(chatAdapter.getItemCount() - 1);\n            return insets;\n        });\n
Run Code Online (Sandbox Code Playgroud)\n

但是当调用这个函数时,It\xe2\x80\x99s 还会重置我在 theme.xml 中设置的状态栏和导航栏颜色。如何在不更改 systemBar 颜色的情况下滚动 recyclerView?

\n

android android-theme android-recyclerview

6
推荐指数
0
解决办法
273
查看次数

如何为按钮选择器设置不同的主题?

如何根据当前应用程序主题为按钮选择器设置不同的样式?

这是我的button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <color android:color="@color/color_theme1"/>
        </item>
 <!-- pressed -->
    <item android:drawable="@color/transparent"/>
 <!-- default -->

</selector>
Run Code Online (Sandbox Code Playgroud)

android themes button selector

5
推荐指数
1
解决办法
858
查看次数