在Android中,如何在操作栏中显示用户信息?
在我的应用程序中,我想将用户配置文件图像放入在Android中,如何在操作栏中显示用户信息?,android,android-actionbar,Android,Android Actionbar,在我的应用程序中,我想将用户配置文件图像放入ImageView中,并将其旁边的用户名显示在操作栏的右侧 有谁能帮助我,如何实现它吗?您可以做的是为操作栏创建自定义布局,然后将此自定义布局分配给操作栏 ActionBar actionBar = supportActionBar; actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionB
ImageView
中,并将其旁边的用户名显示在操作栏的右侧
有谁能帮助我,如何实现它吗?您可以做的是为操作栏创建自定义布局,然后将此自定义布局分配给操作栏
ActionBar actionBar = supportActionBar;
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#363636")));
// actionBar.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.bg_side_menu));
ActionBar.LayoutParams params = new ActionBar.LayoutParams(//Center the textview in the ActionBar !
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.MATCH_PARENT,
Gravity.CENTER);
View viewActionBar = ((Activity) context).getLayoutInflater().inflate(R.layout.general_top_header, null);
actionBar.setCustomView(viewActionBar, params);
TextView _Header_Text_View = (TextView) viewActionBar.findViewById(R.id.header_Name);
_Header_Text_View.setText("" + header_Text);
final ImageView back_Button = (ImageView) viewActionBar.findViewById(R.id.imageView);
back_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
您的general_top_header.xml如下
您可以做的是为操作栏创建自定义布局,然后将此自定义布局指定给操作栏
ActionBar actionBar = supportActionBar;
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#363636")));
// actionBar.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.bg_side_menu));
ActionBar.LayoutParams params = new ActionBar.LayoutParams(//Center the textview in the ActionBar !
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.MATCH_PARENT,
Gravity.CENTER);
View viewActionBar = ((Activity) context).getLayoutInflater().inflate(R.layout.general_top_header, null);
actionBar.setCustomView(viewActionBar, params);
TextView _Header_Text_View = (TextView) viewActionBar.findViewById(R.id.header_Name);
_Header_Text_View.setText("" + header_Text);
final ImageView back_Button = (ImageView) viewActionBar.findViewById(R.id.imageView);
back_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
您的general_top_header.xml如下
如果不想更改标题的布局,请使用此选项。它是带有通用映像加载程序()的版本。但若你们不想要这个库,你们可以使用另一个纯位图文件的代码 更改后,您的应用程序将如下所示
public void changeAvatarAndTitle(字符串登录,字符串化身){
如果(android.os.Build.VERSION.SDK_INT>=11){
最终ActionBar ActionBar=getActionBar();
字符串login=login;
字符串urlOfAvatr=AVATARURL;
试一试{
if(imageLoader!=null)
loadImage(urlOfAvatar,新的SimpleImage加载侦听器(){
@凌驾
public void onLoadingComplete(字符串imageUri、视图视图、位图加载图像){
//用位图做任何你想做的事
位图b=加载图像;
双密度=getResources().getDisplayMetrics().density;
如果(密度>=4.0){
//“xxxhdpi”;
b=Global.getResizedBitmap(b,192,192);
}
如果(密度>=3.0和密度<4.0){
//xxhdpi
b=Global.getResizedBitmap(b,144,144);
}
如果(密度>=2.0){
//xhdpi
b=Global.getResizedBitmap(b,96,96);
}
如果(密度>=1.5和密度<2.0){
//hdpi
b=Global.getResizedBitmap(b,72,72);
}
如果(密度>=1.0和密度<1.5){
//mdpi
b=Global.getResizedBitmap(b,48,48);
}
b=全局.getRoundedCornerBitmap(b,100);
Drawable d=新的位图Drawable(getResources(),b);
如果(android.os.Build.VERSION.SDK_INT>14){
actionBar.setLogo(d);
}
}
});
actionBar.setDisplayShowHomeEnabled(真);
actionBar.setTitle(“+login”);
actionBar.setDisplayUseLogoEnabled(true);
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
公共静态位图getResizedBitmap(位图bm、int-newWidth、int-newHeight){
int width=bm.getWidth();
int height=bm.getHeight();
浮动比例宽度=((浮动)新宽度)/宽度;
浮动刻度高度=((浮动)新高度)/高度;
//为操纵创建一个矩阵
矩阵=新矩阵();
//调整位图的大小
矩阵。后标度(标度宽度、标度高度);
//“重新创建”新位图
Bitmap resizedBitmap=Bitmap.createBitmap(bm,0,0,宽度,高度,矩阵,false);
返回resizedBitmap;
}
没有来自Internet的通用图像加载器的版本
public void changeAvatarAndTitle(String LOGIN, String AVATARURL, Bitmap loadedImage){
if (android.os.Build.VERSION.SDK_INT >= 11) {
final ActionBar actionBar = getActionBar();
String login = LOGIN;
String urlOfAvatr = AVATARURL;
Bitmap b = loadedImage;
double density = getResources().getDisplayMetrics().density;
if (density >= 4.0) {
//"xxxhdpi";
b = Global.getResizedBitmap(b, 192, 192);
}
if (density >= 3.0 && density < 4.0) {
//xxhdpi
b = Global.getResizedBitmap(b, 144, 144);
}
if (density >= 2.0) {
//xhdpi
b = Global.getResizedBitmap(b, 96, 96);
}
if (density >= 1.5 && density < 2.0) {
//hdpi
b = Global.getResizedBitmap(b, 72, 72);
}
if (density >= 1.0 && density < 1.5) {
//mdpi
b = Global.getResizedBitmap(b, 48, 48);
}
b = Global.getRoundedCornerBitmap(b, 100);
Drawable d = new BitmapDrawable(getResources(), b);
if (android.os.Build.VERSION.SDK_INT > 14) {
actionBar.setLogo(d);
}
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setTitle(" " + login);
actionBar.setDisplayUseLogoEnabled(true);
}
}
public static Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// "RECREATE" THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
return resizedBitmap;
}
public void change avatarandTitle(字符串登录、字符串AVATARURL、位图加载图像){
如果(android.os.Build.VERSION.SDK_INT>=11){
最终ActionBar ActionBar=getActionBar();
字符串login=login;
字符串urlOfAvatr=AVATARURL;
位图b=加载图像;
双密度=getResources().getDisplayMetrics().density;
如果(密度>=4.0){
//“xxxhdpi”;
b=Global.getResizedBitmap(b,192,192);
}
如果(密度>=3.0和密度<4.0){
//xxhdpi
b=Global.getResizedBitmap(b,144,144);
}
如果(密度>=2.0){
//xhdpi
b=Global.getResizedBitmap(b,96,96);
}
如果(密度>=1.5和密度<2.0){
//hdpi
b=Global.getResizedBitmap(b,72,72);
}
如果(密度>=1.0和密度<1.5){
//mdpi
b=Global.getResizedBitmap(b,48,48);
}
b=全局.getRoundedCornerBitmap(b,100);
Drawable d=新的位图Drawable(getResources(),b);
如果(android.os.Build.VERSION.SDK_INT>14){
actionBar.setLogo(d);
}
actionBar.setDisplayShowHomeEnabled(真);
actionBar.setTitle(“+login”);
actionBar.setDisplayUseLogoEnabled(true);
}
}
公共静态位图getResizedBitmap(位图bm、int-newWidth、int-newHeight){
int width=bm.getWidth();
int height=bm.getHeight();
浮动比例宽度=((浮动)新宽度)/宽度;
浮动刻度高度=((浮动)新高度)/高度;
//为操纵创建一个矩阵
矩阵=新矩阵();
//调整位图的大小
矩阵。后标度(标度宽度、标度高度);
//“重新创建”新位图
Bitmap resizedBitmap=Bitmap.createBitmap(bm,0,0,宽度,高度,矩阵,false);
返回resizedBitmap;
}
如果不想更改页眉的布局,请使用此选项。它是带有通用映像加载程序()的版本。但若你们不想要这个库,你们可以使用另一个纯位图文件的代码
更改后,您的应用程序将如下所示
public void changeAvatarAndTitle(字符串登录,字符串化身){
如果(android.os.Build.VERSION.SDK_INT
public class Your_Activity extends ActionBarActivity{
}
public void changeAvatarAndTitle(String LOGIN, String AVATARURL){
if (android.os.Build.VERSION.SDK_INT >= 11) {
final ActionBar actionBar = getActionBar();
String login = LOGIN;
String urlOfAvatr = AVATARURL;
try {
if (imageLoader != null)
imageLoader.loadImage(urlOfAvatar, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Do whatever you want with Bitmap
Bitmap b = loadedImage;
double density = getResources().getDisplayMetrics().density;
if (density >= 4.0) {
//"xxxhdpi";
b = Global.getResizedBitmap(b, 192, 192);
}
if (density >= 3.0 && density < 4.0) {
//xxhdpi
b = Global.getResizedBitmap(b, 144, 144);
}
if (density >= 2.0) {
//xhdpi
b = Global.getResizedBitmap(b, 96, 96);
}
if (density >= 1.5 && density < 2.0) {
//hdpi
b = Global.getResizedBitmap(b, 72, 72);
}
if (density >= 1.0 && density < 1.5) {
//mdpi
b = Global.getResizedBitmap(b, 48, 48);
}
b = Global.getRoundedCornerBitmap(b, 100);
Drawable d = new BitmapDrawable(getResources(), b);
if (android.os.Build.VERSION.SDK_INT > 14) {
actionBar.setLogo(d);
}
}
});
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setTitle(" " + login);
actionBar.setDisplayUseLogoEnabled(true);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
public static Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// "RECREATE" THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
return resizedBitmap;
}
public void changeAvatarAndTitle(String LOGIN, String AVATARURL, Bitmap loadedImage){
if (android.os.Build.VERSION.SDK_INT >= 11) {
final ActionBar actionBar = getActionBar();
String login = LOGIN;
String urlOfAvatr = AVATARURL;
Bitmap b = loadedImage;
double density = getResources().getDisplayMetrics().density;
if (density >= 4.0) {
//"xxxhdpi";
b = Global.getResizedBitmap(b, 192, 192);
}
if (density >= 3.0 && density < 4.0) {
//xxhdpi
b = Global.getResizedBitmap(b, 144, 144);
}
if (density >= 2.0) {
//xhdpi
b = Global.getResizedBitmap(b, 96, 96);
}
if (density >= 1.5 && density < 2.0) {
//hdpi
b = Global.getResizedBitmap(b, 72, 72);
}
if (density >= 1.0 && density < 1.5) {
//mdpi
b = Global.getResizedBitmap(b, 48, 48);
}
b = Global.getRoundedCornerBitmap(b, 100);
Drawable d = new BitmapDrawable(getResources(), b);
if (android.os.Build.VERSION.SDK_INT > 14) {
actionBar.setLogo(d);
}
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setTitle(" " + login);
actionBar.setDisplayUseLogoEnabled(true);
}
}
public static Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// "RECREATE" THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
return resizedBitmap;
}