Pertanyaan Android Action Bar CariLihat Ukuran Ikon Menu


Saya telah menerapkan SearchView ke dalam bilah tindakan dari suatu aktivitas dan berfungsi dengan baik dan akan ditampilkan seperti yang diharapkan pada Galaxy Nexus dan sebagian besar emulator. Namun pada Galaxy Note 10.1 dan emulator dengan layar seukuran tablet, tampilannya seperti ini:

Screenshot of SearchView menu icon size problem

Seperti yang Anda lihat ikon pencarian jauh lebih kecil daripada ikon lainnya. Bagaimana saya bisa mendapatkan ukuran ikon ikon pencarian untuk mencocokkan ikon lain? Atau bagaimana saya bisa menyamakan ukuran ikon di layar besar?

Pada awalnya saya pikir mungkin masalahnya bisa dikaitkan dengan ukuran yang bisa ditarik, tetapi setelah memeriksa mereka saya dapat mengkonfirmasi ikon secara konsisten ada di proyek drawable-hdpi, drawable-mdpi dan drawable-xhdpi folder sumber daya dan memiliki ukuran yang sama dengan ikon menu lainnya. Saya menggunakan alat ini untuk menghasilkan gambar yang dapat digambar dan tidak ada ketidakberaturan dalam ukuran dari apa pun yang dapat digambar. Saya bahkan mencoba menggunakan drawable yang sama dengan salah satu ikon menu lainnya dan perbedaan ukuran yang dihasilkan adalah sama.

Ikon tetap berukuran sama dengan SearchView terbuka (yang baik - baik saja karena jika tidak mungkin tumpang tindih menggarisbawahi EditText lihat), tetapi ketika SearchView ditutup lagi ikon adalah ukuran yang sama dan masih jauh lebih kecil daripada sisa ikon dan ini mungkin menjadi petunjuk mengapa hal ini terjadi.

Kode aktivitas:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.example, menu);
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        final SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();
        final MenuItem item = menu.findItem(R.id.search);
        search.setSearchableInfo(manager.getSearchableInfo(getComponentName()));
} else {
    menu.removeItem(R.id.search); // API < 11
    }   
    return true;
}

res / menu / example.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/search"
        android:title="@string/search"
        android:icon="@drawable/search"
        android:showAsAction="ifRoom"
        android:actionViewClass="android.widget.SearchView" />

</menu>

res / xml / searchable.xml

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/search"
    android:hint="@string/search" >
</searchable>

AndroidManifest.xml

<intent-filter>
    <action android:name="android.intent.action.SEARCH" />
</intent-filter>

<meta-data
    android:name="android.app.default_searchable"
    android:value="com.example.ExampleActivity" />
<meta-data
    android:name="android.app.searchable"
    android:resource="@xml/searchable" />

MEMPERBARUI:

Permintaan maaf masalah ini sebenarnya terkait dengan digambar. Khususnya rasio ukuran ikon menu. Itu hdpi-drawable ikon menu semuanya 64x64 (x2) padahal seharusnya 48x48 (x1.5).

Jadi masalah ini dapat dipecahkan dengan mengubah ukuran semua mdpi-drawable ikon menu ke 32x32 dan hdpi-drawable menjadi 48x48 dan xhdpi-drawable hingga 64x64 (terima kasih kepada @rekire karena menyarankan ini).

Masalahnya disebabkan oleh penggunaan versi lama dari alat ini untuk menghasilkan ikon menu. Jadi jika Anda memiliki masalah yang sama Anda dapat mencoba menggunakan versi terbaru untuk menghasilkan ikon baru.


5
2018-04-08 04:11


asal


Jawaban:


Satu-satunya hal yang dapat saya bayangkan adalah Anda menempatkan gambar yang terlalu kecil di salah satu direktori yang bisa digambar. Harap periksa bahwa dimensi gambar tumbuh dari ldpi, mdpi, hdpi, xhdpi, xxhdpi ke xxxhdpi.

Demitas piksel default adalah untuk mdpi 32x32, untuk hdpi 48x48 dan untuk xhdpi 64x64.

Periksa juga saya Kalkulator, itu akan menghitung dimensi gambar yang tepat untuk Anda.


5
2018-04-08 04:19



gunakan drawable sebagai bitmap ukuran itu gunakan bitmap xml

Bagaimana Mengubah Ukuran Bitmap di Android?

SearchView searchView = ((SearchView) searchMenuItem.getActionView());
            int searchImgId = android.support.v7.appcompat.R.id.search_button;
            Drawable searchIcon = scaled drawable .....
searchView.findViewById(searchImgId)).setImageDrawable(searchIcon);

1
2017-11-15 07:57