Java 设置图像时操作栏标题消失
我正在尝试将图像设置到动作栏中,我正在使用CircularImagView来实现这一点 (ScaleType.FIT_END不适用于CircularImageView,但我也尝试过ImageView,即使应用了ScaleType.FIT_END,也会得到相同的结果) 它适用于大屏幕手机,但标题消失在较宽的手机上 例如,对于像nexas 5x这样的宽幅手机,标题显示效果很好 但不会出现在像我的物理手机这样的狭窄设备上 下面是我用来设置图像的代码Java 设置图像时操作栏标题消失,java,android,android-actionbar,android-imageview,Java,Android,Android Actionbar,Android Imageview,我正在尝试将图像设置到动作栏中,我正在使用CircularImagView来实现这一点 (ScaleType.FIT_END不适用于CircularImageView,但我也尝试过ImageView,即使应用了ScaleType.FIT_END,也会得到相同的结果) 它适用于大屏幕手机,但标题消失在较宽的手机上 例如,对于像nexas 5x这样的宽幅手机,标题显示效果很好 但不会出现在像我的物理手机这样的狭窄设备上 下面是我用来设置图像的代码 try {
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\u END或Gravity.RIGHT也没有帮助
(ScaleType.FIT_END不适用于CircularImageView,但我也尝试过ImageView,即使应用了ScaleType.FIT_END,也会得到相同的结果)
位图是全局变量,我正在onCreate中设置它,为了使事情不那么复杂,我没有包括它
解决这个问题的办法是什么?根据Manohar Reddy的建议 我已经创建了一个LinearLayout来创建一个LayoutParam,在上面设置了宽度和高度,并将该layout param设置为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,因此无法获取参数。希望这对某人有所帮助。根据Manohar Reddy的建议 我已经创建了一个LinearLayout来创建一个LayoutParam,在上面设置了宽度和高度,并将该layout param设置为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,因此无法获取参数。希望这对其他人有所帮助。尝试拍摄低分辨率图像,并固定圆形图像视图的宽度和高度。请不要仅仅因为使用了android studio标记就用它来标记问题:android studio标记只应在您对IDE本身有疑问时使用,而不是在其中编写(或想要编写)任何代码时使用。另外,请不要滥用粗体格式明白了,谢谢你提供的infoManohar Reddy,我按照你的建议添加了这个LinearLayout.LayoutParams LayoutParams=新的LinearLayout.LayoutParams(70,70);setLayoutParams(layoutParams);尝试拍摄低分辨率图像,并固定圆形图像视图的宽度和高度。请不要仅仅因为使用了android studio标记就用它来标记问题:android studio标记只应在您对IDE本身有疑问时使用,而不应在其中编写(或想要编写)任何代码。另外,请不要滥用粗体格式明白了,谢谢你提供的infoManohar Reddy,我按照你的建议添加了这个LinearLayout.LayoutParams LayoutParams=新的LinearLayout.LayoutParams(70,70);setLayoutParams(layoutParams);