All*_*lan 3 android android-imageview android-fragments android-relativelayout
我在relativeLayout中动态创建一些ImageView,但我需要尺寸根据屏幕的高度和宽度而变化。在我设置高度时,视图和布局尚未创建,这意味着 和getHeight()返回getWidth()0。我查看了 StackOverflow 上的其他线程,但似乎没有一个线程对我的问题足够具体。
我正在一个片段中完成所有这些工作,并且非常感谢有关如何解决此问题的任何指导。她是我代码的一小段。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.fragment_hello_moon, parent, false);
RelativeLayout rl = (RelativeLayout) v.findViewById(R.id.l1);
tl.setBackgroundColor(Color.RED);
ArrayList<ImageView> imgViews = new ArrayList<ImageView>();
//Cant get height or width of parent as hasnt been created yet
int numberOfBells = 16;
int height = rl.getHeight() / numberOfBells;
int width = rl.getWidth() / 2;
final ImageView imageTopL = new ImageView(getActivity());
if (true){
imageTopL.setId(1);
imageTopL.setImageResource(R.drawable.bell_dl_256);
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
params1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
params1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
params1.setMargins(50,10,0,10);
imageTopL.setLayoutParams(params1);
//Need the size to vary depending on the height/width
imageTopL.getLayoutParams().height = height;
imageTopL.getLayoutParams().width = width;
imageTopL.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageTopL.setImageResource(R.drawable.bell_ul_256);
}
});
imgViews.add(imageTopL);
}
for(ImageView i : imgViews){
rl.addView(i);
}
return v;
}
Run Code Online (Sandbox Code Playgroud)
要获取屏幕的大小,您可以尝试:
DisplayMetrics metrics = this.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)
看这个:获取屏幕尺寸(以像素为单位)
| 归档时间: |
|
| 查看次数: |
13073 次 |
| 最近记录: |