Android 无法更改导航抽屉切换图标
我正在尝试更改用于打开和关闭导航抽屉的切换按钮的抽屉图标。但我所有的努力都失败了,我也没有成功。请在这方面帮助我Android 无法更改导航抽屉切换图标,android,android-layout,android-fragments,kotlin,navigation-drawer,Android,Android Layout,Android Fragments,Kotlin,Navigation Drawer,我正在尝试更改用于打开和关闭导航抽屉的切换按钮的抽屉图标。但我所有的努力都失败了,我也没有成功。请在这方面帮助我 val d = BitmapDrawable(this.getResources(), path) as Drawable toggle!!.setHomeAsUpIndicator(d) if (path != null && path != "") { Picasso.with(t
val d = BitmapDrawable(this.getResources(), path) as Drawable
toggle!!.setHomeAsUpIndicator(d)
if (path != null && path != "") {
Picasso.with(this)?.load(path.toString())?.placeholder(resources?.getDrawable(R.drawable.ic_add_a_photo_black_24dp))?.error(
resources.getDrawable(
android.R.drawable.ic_input_add
)
)!!.into(userPhotoImv)
}
用java发布我的答案可能会有所帮助
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon);
设置用于切换的文本
toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
drawer.openDrawer(GravityCompat.START);
}
}
});
用java发布我的答案可能会有所帮助
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon);
设置用于切换的文本
toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
drawer.openDrawer(GravityCompat.START);
}
}
});
这样试试
首先从url创建位图图像
try {
URL url = new URL("http://....");
Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch(IOException e) {
System.out.println(e);
}
现在初始化导航抽屉
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
navView.setNavigationItemSelectedListener(this);
//change navigation icon
toggle.setDrawerIndicatorEnabled(false);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
toggle.setHomeAsUpIndicator(drawable);
注意:这是java工作代码,您需要在kotlin中进行更改(我认为您可以在类中复制它时直接将其转换为kotlin)
希望能奏效:)试试这个方法
首先从url创建位图图像
try {
URL url = new URL("http://....");
Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch(IOException e) {
System.out.println(e);
}
现在初始化导航抽屉
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
navView.setNavigationItemSelectedListener(this);
//change navigation icon
toggle.setDrawerIndicatorEnabled(false);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
toggle.setHomeAsUpIndicator(drawable);
注意:这是java工作代码,您需要在kotlin中进行更改(我认为您可以在类中复制它时直接将其转换为kotlin)
希望这项工作:)通常您可以设置如下代码片段:
Toolbar chatbox_toolbar = findViewById(R.id.toolbar);
chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
setSupportActionBar(chatbox_toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_back_arrow_gray);
如果你想从URL添加dunamic图片,请稍候,我会在这里更新
使用滑动库:
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
Glide.with(this).asDrawable().load(YourImageUrl).into(new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
getSupportActionBar().setLogo(resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
如果没有得到结果,则隐藏actionbar主页按钮,在自定义标题工具栏中获取图像视图,然后从图像URL使用Glide或piccaso设置图像。如果您在这方面需要帮助,请让我进一步了解,首先尝试上面的代码片段
试试看这可能会对您有所帮助通常您可以设置如下代码段:
Toolbar chatbox_toolbar = findViewById(R.id.toolbar);
chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
setSupportActionBar(chatbox_toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_back_arrow_gray);
如果你想从URL添加dunamic图片,请稍候,我会在这里更新
使用滑动库:
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
Glide.with(this).asDrawable().load(YourImageUrl).into(new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
getSupportActionBar().setLogo(resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
如果没有得到结果,则隐藏actionbar主页按钮,在自定义标题工具栏中获取图像视图,然后从图像URL使用Glide或piccaso设置图像。如果您在这方面需要帮助,请让我进一步了解,首先尝试上面的代码片段
试试这可能会帮助你mToolbar.setNavigationIcon(R.drawable.navIcon);用这个。这是针对java的,您需要为kotlini更改它,我正在使用服务器中的imagepath更改它,但是blank@mdgouse请检查更新的答案,这可能对您有帮助。如果我的答案对您有帮助,请将我的答案从勾号中标记为正确,否则我将删除此答案brother::mToolbar.setNavigationIcon(R.drawable.navIcon);用这个。这是针对java的,您需要为kotlini更改它,我正在使用服务器中的imagepath更改它,但是blank@mdgouse请勾选更新的答案,这可能对您有所帮助。如果我的答案对您有帮助,请将我的答案从勾选标记中标记为正确,否则我将删除此答案brother::但我想将此drawable转换为bitmapi,我有路径自server@mdgouse我已经添加了答案,请检查一下。它的工作java代码,但当复制到您的kotlin时,它会建议转换为kotlin,但我想将此drawable转换为bitmapi,并从server@mdgouse我已经添加了答案,请检查一下。它的java代码可以正常工作,但当在kotlin中复制它时,它会建议转换为KotlIntogle。sethomeupindicator不会拍摄类型的图像bitmap@mdgouse检查我是否已编辑我的答案,是否已将位图图像转换为可绘制的,然后设置iconTry以将此代码放入上述异常,如果上述答案对您有帮助:请尝试RunUnuithRead(new Runnable()){@Override public void run(){//您的代码在这里}});toggle.sethomeupindicator不拍摄类型的图像bitmap@mdgouse检查我是否已编辑我的答案,是否已将位图图像转换为可绘制,然后设置iconTry以将此代码放入上述异常,如果上述答案对您有帮助:请尝试runOnUiThread(new Runnable(){@Override public void run()){//your code here}});kotlin中的target有问题…无法解析target请帮助我了解picasso kotlin中的target有问题…无法解析target请帮助我了解picasso