4

https://github.com/jfeinstein10/SlidingMenuのスライド メニュー ライブラリを使用しています 右または左にスワイプすると、メニューが応答するまでに少し時間がかかります。誰もこれを見たことがありますか?どんな助けでも大歓迎です。

サイズが約 650 Kb の png 画像を使用していますが、20 Kb 未満の低品質の写真を使用してみましたが、問題は残りました。

私の最小SDKは13、ターゲットSDKは17です(これらの値も変更しようとしましたが、役に立ちませんでした)

これは、スライド メニューを使用するアクティビティの 1 つのレイアウトです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@drawable/my_background"
  android:orientation="vertical" >

android:background 値を削除すると、メニューがうまくスライドします

4

2 に答える 2

2

ドローアブル フォルダー (drawable-mdpi、drawable-hdpi、drawable-xhdpi など) ごとに個別の背景画像を追加する必要があります。基本的な drawable フォルダーに画像を 1 つだけ入れてテストしましたが、開閉が非常に遅く、スムーズではありませんでした。さまざまなサイズの背景画像をすべての描画可能なフォルダーに追加すると、魅力的に機能します。

于 2014-07-25T14:06:55.437 に答える
0

(私のような) 誰かがまだスライド メニューと背景画像に問題がある場合は、この問題を解決する方法を説明しようとします。@netis ソリューションは役に立ちませんでした。ご存知のように、スライド メニューで背景を使用しないと問題が解決するため、標準の Android 背景の代わりに別のものを使用する必要があります。これに使いますTextureView。メニューのxmlに追加しました:

<TextureView
    android:id="@+id/menu_texture_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

初期化メニューが追加されたときのアクティビティコード:

final TextureView texture = (TextureView) menuView.findViewById(R.id.menu_texture_view);

    final Drawable picture = getResources().getDrawable(R.drawable.menu_background);

    texture.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
        @Override
        public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
            Canvas canvas = texture.lockCanvas();
            picture.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
            picture.draw(canvas);
            texture.unlockCanvasAndPost(canvas);
        }

        @Override
        public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {

        }

        @Override
        public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
            return false;
        }

        @Override
        public void onSurfaceTextureUpdated(SurfaceTexture surface) {

        }
    });

基本的に、TextureView標準的な Android の方法 ( など) を使用する代わりに、バックグラウンドを に入れます。android:backgroundimageVew

また、推奨事項として、パフォーマンスを向上させるために、すべての dpi (mdpi、hpdi、...) の背景を追加する必要があります。

私はそれが醜い解決策であることを知っていますが、他に何も役に立たなかったときに私にとってはうまくいきます...

于 2015-08-20T14:05:17.077 に答える