我試圖找到如何更改打開導航抽屜可裝載畢加索或者類似的東西,一些自定義圖像的漢堡包圖標。就像上面的圖片一樣,Twitter設法將我的個人資料圖片替換爲他們之前擁有的漢堡圖標。
我在這裏找不到像這樣的東西,我也不知道如何去做。
如果有人得到一個樣本或一些指導如何做到這一點,我會非常感激。
編輯
我的一些活動代碼:
ActivityMapsBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_maps);
...
setSupportActionBar(binding.mapsContent.toolbar);
getSupportActionBar().setTitle("");
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, binding.drawerLayout, binding.mapsContent.toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
binding.drawerLayout.addDrawerListener(toggle);
toggle.syncState();
binding.navView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) {
binding.drawerLayout.closeDrawer(GravityCompat.START);
} else if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, R.string.message_press_twice, Toast.LENGTH_SHORT).show();
new Handler().postDelayed(() -> doubleBackToExitPressedOnce = false, 2000);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_profile:
break;
case R.id.nav_settings:
break;
}
binding.drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
EDIT 2 - 找到了答案
布魯諾·平託的幫助在這裏,在這個線程和一點點後的研究我終於做到了。 您需要創建一個Target並將ImageView的標籤設置爲該Target,並且在加載畢加索時引用您創建的ImageView。在Target的構造函數中,你用加載的Bitmap替換你的視圖。
我是這樣做的:
private void changeImageDrawable(){
ImageView profileImage = (ImageView) binding.navView.getHeaderView(0).findViewById(R.id.iv_profile_image);
final Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
profileImage.setImageBitmap(bitmap);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
binding.mapsContent.toolbar.setNavigationIcon(drawable);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
profileImage.setTag(target);
Picasso.with(this)
.load("YOUR_IMAGE_URL_HERE")
.placeholder(R.drawable.placeholder_profile)
.error(R.drawable.placeholder_profile)
.into(target);
}
你或許應該改變你在錯誤的情況下觀看繪製或位圖,以及。
我知道一個可行的辦法,但我需要看到你的代碼,在這裏發表您的活動代碼。 –
您可以創建佈局並將其用作ActionBar。所以你可以添加你想要的任何東西。 –
@BrunoFerreira我用一些代碼編輯了我的問題 –