Android版本:如何更改复选框的大小

Posted zbw-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android版本:如何更改复选框的大小相关的知识,希望对你有一定的参考价值。

Android版本:如何更改复选框的大小?

  

安卓android 复选框checkbox
我想提出的CheckBox有点小/大了,我该怎么办呢?
可以通过scaleX = ""  和scaleY=""属性来设置  

  1. <CheckBox
  2. android:scaleX="0.6"
  3. android:scaleY="0.6"
  4. android:id="@+id/iv_checkbox"
  5. android:layout_width="wrap_content"
  6. android:layout_height="wrap_content"
  7. android:button="@drawable/checkbox"
  8. android:onClick="onClick" />

1. 你只需要设置相关的可绘制对象,并设置它们的复选框:

  1. <CheckBox
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:text="new checkbox"
  5. android:background="@drawable/my_checkbox_background"
  6. android:button="@drawable/my_checkbox" />

诀窍是如何设置的可绘制对象。下面是关于这个一个很好的教程。 
2. 与API级别11开始有另一种方法存在:

  1. <CheckBox
  2. ...
  3. android:scaleX="0.70" // 我的直接加了这两就好了
  4. android:scaleY="0.70"
  5. />

3. 更新:这只能从API的17起工程... 要添加到另一个辉煌的答案已经给出,只能使复选框,小到文字大小允许。 按我对这个问题的回答: -我们如何能减少核取方块的大小,请一个想法CheckBox从文本以及图像源于它的高度。 在你的XML设置这些属性:

  1. android:text=""
  2. android:textSize="0sp"

当然,如果你想没有文本(工作这仅适用 没有这些改变,CheckBox大约是我的形象幅度较大 CodeGo.net,由乔 
4. 本教程介绍了如何做到这一点链接土特 
5. 我找到了一个办法做到这一点,而无需创建自己的图像。换句话说,该系统的图像被缩放。我不会假装,该解决方案是完美的,如果有人知道的方式来缩短的步骤,我会很高兴地找出如何。 首先,我把下列项目(WonActivity)的主要活动类。这是直接从堆栈溢出-谢谢你们!

  1. /** get the default drawable for the check box */
  2. Drawable getDefaultCheckBoxDrawable()
  3. int resID = 0;
  4. if (Build.VERSION.SDK_INT <= 10)
  5. // pre-Honeycomb has a different way of setting the CheckBox button drawable
  6. resID = Resources.getSystem().getIdentifier("btn_check", "drawable", "android");
  7. else
  8. // starting with Honeycomb, retrieve the theme-based indicator as CheckBox button drawable
  9. TypedValue value = new TypedValue();
  10. getApplicationContext().getTheme().resolveAttribute(android.R.attr.listChoiceIndicatorMultiple, value, true);
  11. resID = value.resourceId;
  12. return getResources().getDrawable(resID);

第二,我创建了一个类“缩放绘制”。请注意,它从标准ScaleDrawable不同。

  1. import android.graphics.drawable.*;
  2. /** The drawable that scales the contained drawable */
  3. public class ScalingDrawable extends LayerDrawable
  4. /** X scale */
  5. float scaleX;
  6. /** Y scale */
  7. float scaleY;
  8. ScalingDrawable(Drawable d, float scaleX, float scaleY)
  9. super(new Drawable[] d );
  10. setScale(scaleX, scaleY);
  11. ScalingDrawable(Drawable d, float scale)
  12. this(d, scale, scale);
  13. /** set the scales */
  14. void setScale(float scaleX, float scaleY)
  15. this.scaleX = scaleX;
  16. this.scaleY = scaleY;
  17. /** set the scale -- proportional scaling */
  18. void setScale(float scale)
  19. setScale(scale, scale);
  20. // The following is what I wrote this for!
  21. @Override
  22. public int getIntrinsicWidth()
  23. return (int)(super.getIntrinsicWidth() * scaleX);
  24. @Override
  25. public int getIntrinsicHeight()
  26. return (int)(super.getIntrinsicHeight() * scaleY);

最后,我定义了一个复选框类。

  1. import android.graphics.*;
  2. import android.graphics.drawable.Drawable;
  3. import android.widget.*;
  4. /** A check box that resizes itself */
  5. public class WonCheckBox extends CheckBox
  6. /** the check image */
  7. private ScalingDrawable checkImg;
  8. /** original height of the check-box image */
  9. private int origHeight;
  10. /** original padding-left */
  11. private int origPadLeft;
  12. /** height set by the user directly */
  13. private float height;
  14. WonCheckBox()
  15. super(WonActivity.W.getApplicationContext());
  16. setBackgroundColor(Color.TRANSPARENT);
  17. // get the original drawable and get its height
  18. Drawable origImg = WonActivity.W.getDefaultCheckBoxDrawable();
  19. origHeight = height = origImg.getIntrinsicHeight();
  20. origPadLeft = getPaddingLeft();
  21. // I tried origImg.mutate(), but that fails on Android 2.1 (NullPointerException)
  22. checkImg = new ScalingDrawable(origImg, 1);
  23. setButtonDrawable(checkImg);
  24. /** set checkbox height in pixels directly */
  25. public void setHeight(int height)
  26. this.height = height;
  27. float scale = (float)height / origHeight;
  28. checkImg.setScale(scale);
  29. // Make sure the text is not overlapping with the image.
  30. // This is unnecessary on Android 4.2.2, but very important on previous versions.
  31. setPadding((int)(scale * origPadLeft), 0, 0, 0);
  32. // call the checkbox\'s internal setHeight()
  33. // (may be unnecessary in your case)
  34. super.setHeight(height);

MudTreeView - 如何更改复选框的大小和颜色?

【中文标题】MudTreeView - 如何更改复选框的大小和颜色?【英文标题】:MudTreeView - How to change checkbox size and color? 【发布时间】:2021-11-07 07:44:29 【问题描述】:

我正在为 Blazor WebAssembly 使用一个名为 Mudblazor 的 CSS 框架。 Link to mudblazor

我不知道如何在 MudTreeView 中设置复选框的大小和颜色。

<MudTreeViewItem  Value="@item.CategoryName" Class="mud-treeview-item-content.mud-treeview-item-activated" Selected="item.IsChecked" SelectedChanged="eventArgs =>   CheckboxClicked(item.CategoryId, eventArgs); " >

在使用 MudCheckBox 的 Mudblazor 中,您可以通过添加 Size = "Size.Large" 和颜色来设置大小:Color="Color.Primary" 但我在 MudTreeView 中没有。

有没有办法让它工作?

【问题讨论】:

【参考方案1】:

作为一种解决方法,您可以将一个类添加到您想要设置复选框样式的MudTreeViewItem 元素:

<MudTreeViewItem Value='"Name"' Class="custom-treeview-item"/>

然后你可以使用这个类来定位你的css中的复选框:

.custom-treeview-item .mud-checkbox span 
    color: var(--mud-palette-primary);


.custom-treeview-item .mud-checkbox svg 
    font-size: 2.25rem;

【讨论】:

以上是关于Android版本:如何更改复选框的大小的主要内容,如果未能解决你的问题,请参考以下文章

MudTreeView - 如何更改复选框的大小和颜色?

如何更改树视图中复选框的默认图形大小?

Flutter - 如何更改 CheckboxListTile 大小?

如何更改 CheckBox 矩形大小

如何在 android 复选框检查更改上接收事件?

如何更改复选框的颜色?