小编ugu*_*gur的帖子

在RecyclerView中使用折叠工具栏的Android字母快速滚动视图

在我的应用程序中,我有这样的activity_main.xml: -

<Coordinator Layout>
   <AppBarLayout>
      <CollapsingToolbarLayout>
           <ImageView/>
           <Toolbar/>
       </CollapsingToolbarLayout>
   </AppBarLayout>
   <RecyclerView/>
</Coordinating Layout>
Run Code Online (Sandbox Code Playgroud)

Layout.xml ----- >>>

<?xml version="1.0" encoding="utf-8"?>



<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/theme_background"
    android:id="@+id/drawerlayout"
    >


    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:id="@+id/activity_main_id"
        tools:context="objectdistance.ajai.ram.sita.gallery.MainActivity">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">


            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_scrollFlags="scroll|exitUntilCollapsed"
                app:contentScrim="?attr/colorPrimary"
                app:expandedTitleMarginStart="48dp"
                app:expandedTitleMarginEnd="64dp"
                android:fitsSystemWindows="true">



                <ImageView
                    android:id="@+id/imagetoolbar"
                    android:layout_width="match_parent"
                    android:layout_height="200dp"
                    android:scaleType="centerCrop"
                    android:fitsSystemWindows="true"
                    android:foreground="@drawable/image_header_foreground"
                    app:layout_scrollFlags="scroll"
                    app:layout_collapseMode="parallax"/>

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                    android:background="@drawable/theme_background"
                    app:layout_collapseMode="pin" >

                    <Spinner
                        android:id="@+id/spinner_nav"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"

                        android:dropDownVerticalOffset="?attr/actionBarSize" />

                </android.support.v7.widget.Toolbar>

            </android.support.design.widget.CollapsingToolbarLayout>


        </android.support.design.widget.AppBarLayout>




        <android.support.v7.widget.RecyclerView
            android:id="@+id/list" …
Run Code Online (Sandbox Code Playgroud)

android fastscroll material-design android-recyclerview android-coordinatorlayout

42
推荐指数
1
解决办法
7721
查看次数

使用UIBezierPath:byRoundingCorners:使用Swift 2和Swift 3

我正在使用此代码使按钮的两个角变圆.

let buttonPath = UIBezierPath(roundedRect: button.bounds,
                              byRoundingCorners: .TopLeft | .BottomLeft, 
                              cornerRadii: CGSizeMake(1.0, 1.0))
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误:

二元运算符'|' 不能应用于两个UIRectCorner操作数.

如何在Swift 2.0中使用此方法?

rounded-corners ios uibezierpath swift

20
推荐指数
2
解决办法
7713
查看次数

直接连接2个或更多Android客户端

我想通过p2p连接连接2个或更多Android设备.据我所知,我可以在一个wifi网络下使用Wi-Fi Direct https://developer.android.com/guide/topics/connectivity/wifip2p.html

但我想连接位于不同地方但可能只有一个IP(vpn或其他)的Android客户端.我怎样才能做到这一点?

这是我的算法

Client_1 register its name and current IP on Server
Client_2 register its name and current IP on Server
Client_1 request registred IP from Server by Client_2 name
Client_2 request registred IP from Server by Client_1 name
Client_1 send message directly to Client_2 IP
Run Code Online (Sandbox Code Playgroud)

如果Client_1和Client_2具有相同的IP,则此算法将不起作用.或者如果客户端在NAT后面.

是否有现成的库以这种方式连接2个或更多Android设备?

networking android p2p wifi-direct

9
推荐指数
1
解决办法
287
查看次数

膨胀时ClassNotFoundException重新android.support.v4.view.ViewPager

我正在将ViewPager添加到Android Studio中的应用程序中,但是当我尝试运行它时,它将抛出ClassNotFoundException重新分类为“ android.support.v4.view.ViewPager”。

做了大量的谷歌搜索,并尝试更改build.gradle中的依赖项,但没有任何改变可以改变我所看到的错误。

以下是Logcat的相关错误行:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.playmusic/com.example.android.playmusic.MainActivity}: android.view.InflateException: Binary XML file line #60: Binary XML file line #60: Error inflating class android.support.v4.view.ViewPager
...
Caused by: android.view.InflateException: Binary XML file line #60: Binary XML file line #60: Error inflating class android.support.v4.view.ViewPager
Caused by: android.view.InflateException: Binary XML file line #60: Error inflating class android.support.v4.view.ViewPager
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.view.ViewPager" on path: DexPathList[[zip file "/data/app/com.example.android.playmusic--Sh7PlYKQR0g2meRQdvXcg==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.android.playmusic--Sh7PlYKQR0g2meRQdvXcg==/lib/arm64, /system/lib64, /system/vendor/lib64]]
Run Code Online (Sandbox Code Playgroud)

这是main_activity.xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:app="http://schemas.android.com/apk/res-auto"> …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-studio

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

TarsosDSP和SurfaceView多线程问题

我正在使用TarsosDSP实时计算音高.它使用AudioDispatcher实现Runnable并通过handlePitch方法发布结果以在主线程中使用.

我正在使用SurfaceView在更新时绘制此值.SurfaceView还需要另一个线程在画布上绘制.所以我有2个可运行的对象.我无法管理如何通过一个线程更新表面视图,同时从另一个线程(audiodispatcher)获取音高值.

我只想使用我在handlePitch()方法中获得的分值来更新我在surfaceview上的绘图.但我的应用冻结了.任何的想法?

在MainAcitivity.java中(onCreate(...))

   myView = (MySurfaceView) findViewById(R.id.myview);

    int sr = 44100;//The sample rate
    int bs = 2048;
    AudioDispatcher d = AudioDispatcherFactory.fromDefaultMicrophone(sr,bs,0);
    PitchDetectionHandler printPitch = new PitchDetectionHandler() {
        @Override
        public void handlePitch(final PitchDetectionResult pitchDetectionResult, AudioEvent audioEvent) {
            final float p = pitchDetectionResult.getPitch();

            runOnUiThread(new Runnable() {
                @Override
                public void run() {

                    if (p != -1){
                        float cent = (float) (1200*Math.log(p/8.176)/Math.log(2)) % 12;
                        System.out.println(cent);
                        myView.setCent(cent);
                    }
                }
            });
        }
    };

    PitchProcessor.PitchEstimationAlgorithm algo = PitchProcessor.PitchEstimationAlgorithm.YIN; //use YIN
    AudioProcessor pitchEstimator = new PitchProcessor(algo, sr,bs,printPitch); …
Run Code Online (Sandbox Code Playgroud)

multithreading android surfaceview tarsosdsp

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

Android 2.2.2 Firebase助手将您的应用重新连接到firebase

我使用Android Studio 2.2.2附带的Firebase Assistant来创建Firebase项目.首先,我连接到之前的firebase项目,然后我想创建一个新的Firebase项目,但它始终显示"将您的应用程序连接到Firebase"步骤为已连接,并且没有按钮可以将其恢复.我手动配置它但我想知道是否有办法断开连接并重新连接它.

谢谢

Firebase Assitant

android firebase android-studio-2.2 firebase-assistant

5
推荐指数
2
解决办法
6253
查看次数

如何动态更改导航抽屉的标题布局背景颜色?

如您所知,android studio 有一个Navigation Drawer Activity,它可以在 layout 文件夹中自行创建一堆布局。

在此处输入图片说明

nav_header_main.xml是包含 NavigationView 标头组件的布局。我在上图中突出显示了它,它有以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/sideNavLayout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:src="@android:drawable/sym_def_app_icon" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="Android Studio"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="android.studio@android.com" />

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

我想更改上图中突出显示部分的背景,MainActivity.java如下所示:

LinearLayout sideNavLayout;
sideNavLayout = (LinearLayout) findViewById(R.id.sideNavLayout);
sideNavLayout.setBackgroundResource(R.drawable.my_side_nav_bar);
Run Code Online (Sandbox Code Playgroud)

但是无论我在哪里使用它,我都会收到错误消息:

java.lang.NullPointerException

任何人都可以在这方面帮助我吗?

java layout android android-layout navigation-drawer

4
推荐指数
1
解决办法
3760
查看次数