如何减小CalendarView的大小?

时间:2016-09-18 13:22:26

标签: android calendarview

我可以知道如何在Android中调整CalendarView的大小吗? CalendarView占据了屏幕的一半以上。 我希望它变得更小,可能是屏幕的40%。感谢。

智能手机中的默认CalendarView大小占据了一半以上

CalendarView

我目前的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ada.landing.MainActivity">

<CalendarView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/calendarView"
    android:firstDayOfWeek="2"/></RelativeLayout>

我尝试了另一种定义CalendarView的方法,但总体高度降低了但不会按比例收缩:

CalendarView

<CalendarView
            android:layout_width="500dp"
            android:layout_height="200dp"
            android:id="@+id/calendarView"
            android:firstDayOfWeek="2" />

7 个答案:

答案 0 :(得分:5)

我认为CalendarView不是(真的)可调整大小,因为Android会调整此视图的大小以允许用户使用此视图获得良好的体验。 我认为使用DatePickerDialog时的通信大小。 DatePickerDialog

CalendarView需要最小高度和宽度。

如果你真的想调整calendarView的大小,可以尝试用编程方式调整大小(或缩放):

float scalingFactor = 0.5f; // scale down to half the size view.setScaleX(scalingFactor); view.setScaleY(scalingFactor);

答案 1 :(得分:1)

您可以通过几种不同的方式缩小CalendarView的大小。一种是你可以手动调整你使用日历的.XML文件中视图的大小。另一种方法是创建一个新的布局(如线性布局),将布局调整到你想要的大小,以及将CalendarView放在该布局中。

答案 2 :(得分:1)

这里我把代码减少到40%宽度的压缩视图。这个。

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="0.4"
        android:orientation="horizontal"
        android:weightSum="1">

        <CalendarView
            android:id="@+id/calendarView"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="0.4"
            android:firstDayOfWeek="2" />


    </LinearLayout>
</LinearLayout>

答案 3 :(得分:1)

您可以尝试这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:weightSum="5"
              android:orientation="vertical">
    <LinearLayout android:layout_width="match_parent" android:layout_height="0dp"
                  android:layout_weight="2">
        <CalendarView
            android:id="@+id/calendarView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:firstDayOfWeek="2"/>
    </LinearLayout>
    <LinearLayout android:layout_width="match_parent" android:layout_height="0dp"
                  android:layout_weight="3"></LinearLayout>
</LinearLayout>

答案 4 :(得分:1)

希望这可能有助于缩小日历视图的大小。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

    <CalendarView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:id="@+id/calendarView"
        android:firstDayOfWeek="2"/>
        </LinearLayout>
    <LinearLayout
        android:layout_weight="60"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:text="Hello World hello world "
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>

    </LinearLayout>

现在有一个库可以让你将dp大小设置为sdp(可扩展的Dp),这样它可以帮助很多屏幕尺寸

Gradle for that

compile 'com.intuit.sdp:sdp-android:1.0.3'

代码示例与上面的示例相同,但它将支持所有可能的屏幕尺寸

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">


    <CalendarView
        android:layout_width="@dimen/_100sdp"
        android:layout_height="@dimen/_100sdp"
        android:id="@+id/calendarView"
        android:firstDayOfWeek="2"/>
        </LinearLayout>
    <LinearLayout
        android:layout_weight="60"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:text="Hello World hello world "
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>

    </LinearLayout>

答案 5 :(得分:1)

如果你想调整大小

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 10, 1);
function add_custom_price( $cart_object) {

    global $woocommerce;

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $coupon = False;

    if ($coupons = WC()->cart->get_applied_coupons()  == False ) 
      $coupon = False;
    else {
        foreach ( WC()->cart->get_applied_coupons() as $code ) {
          $coupons1 = new WC_Coupon( $code );
          if ($coupons1->type == 'percent_product' || $coupons1->type == 'percent')
            $coupon = True;
        }
    }

    if ($coupon == True)
        foreach ( $cart_object->get_cart() as $cart_item ) 
        {
            $price = $cart_item['data']->regular_price;
            $cart_item['data']->set_price( $price );
        }
}

答案 6 :(得分:0)

我已经尝试了所有答案,但没有尝试我究竟想要什么。然后我有用户Material Calender View

因为我们可以根据我们的要求给出瓷砖宽度和瓷砖高度。如果我们希望矩形日历视图的高度与宽度相比要小得多,我们可以将瓷砖宽度设置为高于高度。谢谢所有回答的人。