Искам програмно да преоразмеря изображението на CheckBox, но искам да използвам оригиналните изображения на телефона. Просто искам да го мащабирам. Не искам да предоставям собствени изображения, защото искам да запазя външния вид на телефона и пак ще трябва да ги мащабирам. Вече се опитах да получа ресурсите за системни изображения, използвайки Настройване на квадратчето за отметка на Android на различно изображение... и след това обратно към оригиналните изображения, но все още не можах да мащабирам чертаемото. (Опитах drawable.setBounds()). Вероятно също ще имам този проблем с радио бутоните. Благодаря за вашата помощ!
Преоразмерете изображението на квадратчето за отметка в Android програмно
comment
опитахте ли да мащабирате височината и ширината на вашия CheckBox?
- person Padma Kumar   schedule 07.09.2012
comment
checkbox.setWidth() и checkbox.setHeight() нямат ефект. checkbox.getLayoutParams().height=16 има ефект, но изрязва съдържанието (изображение и текст), както android:layout_width=16dip android:layout_height=16dip в оформлението xml.
- person Kio_BuE   schedule 07.09.2012
comment
Не получих решение, така че ето моят частичен отговор: Започвайки с Android 11, можете да използвате setScaleX() и setScaleY() на изглед.
- person Kio_BuE   schedule 18.09.2012
Отговори (1)
трябва просто да можете да зададете параметрите на оформлението в квадратчето за отметка:
LayoutParams lp = findViewById(R.id.chk_id).getLayoutParams();
lp.width = width;
lp.height=height;
findViewById(R.id.chk_id).setLayoutParams(lp);
Като получите параметрите на оформлението, преди да запазите всяка друга настройка на оформлението, свързана с изгледа
ширината и височината са в пиксели, за да ги мащабирате за използване на плътност:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = (int)(150*dm.density);
трябва да използвате класа Container за параметрите на Layout, този пример е за FrameLayout, но просто го заменете с типа на родителския контейнер.
person
siliconeagle
schedule
07.09.2012
това изглежда разумно, но не намирам
R.id.chk_id
. Опитах android.R.id.chk_id
, но има само .checkbox
(което не е идентификаторът на изображението в квадратчето за отметка). Ако тук съм ви разбрал погрешно и chk_id
означава идентификатора на моя CheckButton, тогава отговорът е: това не работи. Той изрязва съдържанието (изображение и текст) на квадратчето за отметка.
- person Kio_BuE; 07.09.2012