设置图像时操作栏标题消失
Action Bar Title Disappearing When Setting Image
我正在尝试将图像设置为操作栏,我正在使用 CircularImagView 来执行此操作。
(ScaleType.FIT_END 不适用于 CircularImageView 但我也尝试了 ImageView 即使应用 ScaleType.FIT_END 也有相同的结果)。
它适用于较大的屏幕 phone 但标题会在较小的屏幕上消失 phone。
例如标题显示宽 phone 像 nexas 5x
但不会像我的身体那样出现在狭窄的设备中 phone。
这是我用来设置图像的代码
try {
// setting the image in the actionbar
getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions()
| ActionBar.DISPLAY_SHOW_CUSTOM);
CircleImageView imageView = new CircleImageView(getSupportActionBar().getThemedContext());
//imageView.setScaleType(CircleImageView.ScaleType.FIT_END);
//imageView.setForegroundGravity(Gravity.RIGHT);
imageView.setImageBitmap(bitmap);
getSupportActionBar().setCustomView(imageView);
// setting the image in actionbar ends here
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
即使 ScaleType.FIT_END 或 Gravity.RIGHT 也无济于事
(ScaleType.FIT_END 不适用于 CircularImageView 但我也尝试了 ImageView 即使应用 ScaleType.FIT_END 也有相同的结果)。
位图是全局变量,我在 onCreate 中设置它,为了使事情不那么复杂,我没有包括它。
可能有什么解决方案?
根据 Manohar Reddy 的建议
我创建了一个 LinearLayout 来创建 LayoutParam,在其上设置了宽度和高度,并将该布局参数设置为解决问题的 imageview
try {
// setting the image in the actionbar
getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions()
| ActionBar.DISPLAY_SHOW_CUSTOM);
CircleImageView imageView = new CircleImageView(getSupportActionBar().getThemedContext());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(70, 70);
imageView.setLayoutParams(layoutParams);
imageView.setImageBitmap(bitmap);
getSupportActionBar().setCustomView(imageView);
// setting the image in actionbar ends here
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
不得不创建一个新的布局参数,因为 activity xml 中没有图像视图,所以无法获取参数。希望这对某人有所帮助。
我正在尝试将图像设置为操作栏,我正在使用 CircularImagView 来执行此操作。
(ScaleType.FIT_END 不适用于 CircularImageView 但我也尝试了 ImageView 即使应用 ScaleType.FIT_END 也有相同的结果)。
它适用于较大的屏幕 phone 但标题会在较小的屏幕上消失 phone。
例如标题显示宽 phone 像 nexas 5x
但不会像我的身体那样出现在狭窄的设备中 phone。
这是我用来设置图像的代码
try {
// setting the image in the actionbar
getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions()
| ActionBar.DISPLAY_SHOW_CUSTOM);
CircleImageView imageView = new CircleImageView(getSupportActionBar().getThemedContext());
//imageView.setScaleType(CircleImageView.ScaleType.FIT_END);
//imageView.setForegroundGravity(Gravity.RIGHT);
imageView.setImageBitmap(bitmap);
getSupportActionBar().setCustomView(imageView);
// setting the image in actionbar ends here
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
即使 ScaleType.FIT_END 或 Gravity.RIGHT 也无济于事
(ScaleType.FIT_END 不适用于 CircularImageView 但我也尝试了 ImageView 即使应用 ScaleType.FIT_END 也有相同的结果)。
位图是全局变量,我在 onCreate 中设置它,为了使事情不那么复杂,我没有包括它。
可能有什么解决方案?
根据 Manohar Reddy 的建议 我创建了一个 LinearLayout 来创建 LayoutParam,在其上设置了宽度和高度,并将该布局参数设置为解决问题的 imageview
try {
// setting the image in the actionbar
getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions()
| ActionBar.DISPLAY_SHOW_CUSTOM);
CircleImageView imageView = new CircleImageView(getSupportActionBar().getThemedContext());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(70, 70);
imageView.setLayoutParams(layoutParams);
imageView.setImageBitmap(bitmap);
getSupportActionBar().setCustomView(imageView);
// setting the image in actionbar ends here
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
不得不创建一个新的布局参数,因为 activity xml 中没有图像视图,所以无法获取参数。希望这对某人有所帮助。