android - tutorial - widgets ماهو




تعيين عرض ImageView والارتفاع برمجيا؟ (6)

كيف يمكنني ضبط عرض وعرض ImageView بطريقة برمجية؟


أفضل وأسهل طريقة لتعيين زر بشكل حيوي

 Button index=new Button(this);
 int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics());             
 int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMetrics());

الارتفاع أعلاه والعرض في البكسل بكسل . 45 كونها الارتفاع في dp و 42 هي العرض في dp .

 index.setLayoutParams(new <Parent>.LayoutParams(width, height));

لذلك ، على سبيل المثال ، إذا كنت قد وضعت الزر الخاص بك داخل TableRow داخل TableLayout ، فيجب أن يكون ذلك بمثابة TableRow.LayoutParams

 index.setLayoutParams(new TableRow.LayoutParams(width, height));

إذا كان عرض الصورة ديناميكيًا ، فستفشل الإجابة التي تحتوي على getLayout مع استثناء فارغ.

في هذه الحالة ، الطريقة الصحيحة هي:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);

ببساطة إنشاء كائن LayoutParams وتعيينه إلى imageView الخاص بك

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(150, 150);
imageView.setLayoutParams(params);

قد يكون الأوان قد فات ، ولكن من أجل الآخرين الذين لديهم نفس المشكلة ، لتعيين ارتفاع ImageView:

image_view.getLayoutParams().height = 20;

أتمنى أن يساعدك هذا.

مهم. إذا كنت تقوم بتعيين الارتفاع بعد أن يكون المخطط قد تم بالفعل "تخطيطه" ، فتأكد أيضًا من الاتصال بـ:

image_view.requestLayout()

هذه الطريقة البسيطة للقيام بمهمتك:

setContentView(R.id.main);    
ImageView iv = (ImageView) findViewById(R.id.left);
int width = 60;
int height = 60;
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);

وطريقة أخرى إذا كنت تريد إعطاء حجم الشاشة في الطول والعرض ، ثم استخدم التعليمات البرمجية أدناه:

setContentView(R.id.main);    
Display display = getWindowManager().getDefaultDisplay();
ImageView iv = (LinearLayout) findViewById(R.id.left);
int width = display.getWidth(); // ((display.getWidth()*20)/100)
int height = display.getHeight();// ((display.getHeight()*30)/100)
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);

نأمل استخدام الكامل لك.


يمكنك تحديد قيمة لجميع الحالات.

demoImage.getLayoutParams().height = 150;

demoImage.getLayoutParams().width = 150;

demoImage.setScaleType(ImageView.ScaleType.FIT_XY);




android-widget