我正在尝试将图像设置到操作栏中,我正在使用CircularImagView进行操作。
(ScaleType.FIT_END不适用于CircularImageView,但即使应用了ScaleType.FIT_END,我也尝试了ImageView相同的结果)。
在大屏幕手机上可以正常使用,但在小屏幕手机上标题会消失。
例如标题对于像nexas 5x这样的宽手机来说可以正常显示
但是不会出现在像我的实体电话这样的狭窄设备中。
这是我用来设置图像的代码
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,但即使应用了ScaleType.FIT_END,我也尝试了ImageView相同的结果)。
位图是全局变量,我在onCreate中进行了设置,以使事情变得更简单,我没有添加。
这可能是什么解决方案?
答案 0 :(得分:0)
根据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();
}
必须创建一个新的布局参数,原因是活动xml中没有imageview,因此无法获取该参数。希望这对某人有帮助。