2014-03-03 39 views
0

我想定位水平居中的ViewLayout。我的代码如下失败。我怎样才能解决这个问题?Android:如何将imageView设置为水平中心

见我的代码:

LinearLayout LLT = new LinearLayout(context); 
LLT.setOrientation(LinearLayout.VERTICAL); 
LLT.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

//get booktheme by bookID 
theme = db.getthemeByID(id); 
String themePath = theme.getFilepath(); 
int resid = getResources().getIdentifier(themePath, "drawable", getPackageName()); 
//imageView 
ImageView imageTheme = new ImageView(context); 
imageTheme.setLayoutParams(new LayoutParams(500, 700)); 
imageTheme.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
imageTheme.setPadding(0, 20, 0, 10); 
imageTheme.setAdjustViewBounds(true); 
imageTheme.setImageResource(resid); 

LLT.addView(imageTheme); 
// add view 
VF.addView(LLT); 

回答

0

使用Gravity功能在LayoutParams如下:

LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(500, 700); 
layoutParams.gravity=Gravity.CENTER_HORIZONTAL; 
imageTheme.setLayoutParams(layoutParams); 

与此一替换您的代码,并尝试:

LinearLayout LLT = new LinearLayout(context); 
    LLT.setOrientation(LinearLayout.VERTICAL); 
    LLT.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 



    //get booktheme by bookID 
    theme = db.getthemeByID(id); 
    String themePath = theme.getFilepath(); 
    int resid = getResources().getIdentifier(themePath, "drawable", getPackageName()); 
    //imageView 
    ImageView imageTheme = new ImageView(context); 
    LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(500, 700); 
    layoutParams.gravity=Gravity.CENTER_HORIZONTAL; 
    imageTheme.setLayoutParams(layoutParams); 
    imageTheme.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    imageTheme.setPadding(0, 20, 0, 10); 
    imageTheme.setAdjustViewBounds(true); 
    imageTheme.setImageResource(resid); 

    LLT.addView(imageTheme); 
    // add view 
    VF.addView(LLT); 
+0

这是最后一次尝试。 – user3001046

+0

@ user3001046对于任何进一步的问题都是免费的,如果您发现我的答案有用,请将其投票。谢谢 –

0

你尝试过使用相对布局而不是线性布局?

编辑: 如果u要使用相对布局,

RelativeLayout.LayoutParams layoutParams = 
    (RelativeLayout.LayoutParams)imageview.getLayoutParams(); 
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); 
imageview.setLayoutParams(layoutParams); 

(没有BTW测试代码,但我把它用在我的应用程序,所以这SHLD做的工作之一)

+0

我已经tryed.chang Linearlayout >>> RelativeLayout LLT = new RelativeLayout(context);.同样输出 – user3001046

相关问题