2014-07-07 101 views
1

我正在设计一个Android XML布局,其中包含一些表示复选标记和红色X图像的ImageView。提交给屏幕时,我遇到了这些包含额外边距/填充的图像的几个问题。ImageView留下不需要的顶部/底部边距/填充

Screenshot of padding issue

注意,似乎没有左或右边距/填充,但有充足的顶部/底部填充。

的图像下面创建小型/上下文图标在http://developer.android.com/design/style/iconography.html

描述我想通过具有保证金/填充匹配其水平边距/填充的效果,纠正问题的指导方针PNG格式。

这里是布局的XML:

<!-- Event Reoccuring --> 
      <LinearLayout 
       android:id="@+id/event_reoccur_row" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:paddingTop="5dp" 
       android:paddingLeft="16dp" 
       android:paddingRight="16dp" 
       > 

       <TextView 
        android:id="@+id/kid_event_reoccur_label" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.5" 
        android:layout_gravity="center_vertical" 
        android:text="@string/event_reoccur" 
       /> 

       <ImageView 
        android:id="@+id/kid_event_reoccur_indicator" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.1" 
        android:layout_gravity="center_vertical" 
        android:contentDescription="@string/indicator" 
        /> 

       <TextView 
        android:id="@+id/kid_event_reoccur" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.4" 
        android:layout_gravity="center_vertical" 
        android:paddingLeft="4dp" 
        android:text="@string/not_applicable" 
       /> 
      </LinearLayout> 

<!-- Age Required --> 
      <LinearLayout 
       android:id="@+id/event_age_req_row" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:paddingLeft="16dp" 
       android:paddingRight="16dp" 
       > 

       <TextView 
        android:id="@+id/kid_event_age_req_label" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.5" 
        android:layout_gravity="center_vertical" 
        android:text="@string/event_age_req" 
       /> 
       <ImageView 
        android:id="@+id/kid_event_age_req_indicator" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.1" 
        android:gravity="center_vertical" 
        android:contentDescription="@string/indicator" 
        /> 
       <TextView 
        android:id="@+id/kid_event_age_req" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.4" 
        android:layout_gravity="center_vertical" 
        android:paddingLeft="4dp" 
        android:text="@string/not_applicable" 
       /> 
      </LinearLayout> 

这里是填充ImageViews代码(注意 - mReoccurIndcator & mAgeReqIndicator是ImageViews而mReoccurence & mAgeReq是TextViews):

@TargetApi(16) 
private void setupEventReoccurence(View v) { 
    // Get Reference 
    mReoccurence = (TextView) v.findViewById(R.id.kid_event_reoccur); 
    mReoccurence.setText(boolToString(mEvent.isReoccuring())); 

    // Checkmark/X indicator 
    mReoccurIndicator = (ImageView) v.findViewById(R.id.kid_event_reoccur_indicator); 
    mReoccurIndicator.setImageResource(R.drawable.greencheck_small_context_icon); 
    mReoccurIndicator.setScaleType(ScaleType.CENTER_INSIDE); 
    mReoccurIndicator.setCropToPadding(true); 
    //mReoccurIndicator.setMaxHeight((int) mReoccurence.getTextSize()); 
    //mReoccurIndicator.setMinimumHeight((int) mReoccurence.getTextSize()); 

    Log.d(TAG, "getTextSize() as float: " + mReoccurence.getTextSize()); 
    Log.d(TAG, "getTextSize() as int: " + (int) mReoccurence.getTextSize()); 



} 
    @TargetApi(16) 
private void setupEventAgeReq(View v) { 
    // Get Reference 
    mAgeReq = (TextView) v.findViewById(R.id.kid_event_age_req); 
    mAgeReq.setText(boolToString(mEvent.isAgeReq())); 

    // Checkmark/X indicator 
    mAgeReqIndicator = (ImageView) v.findViewById(R.id.kid_event_age_req_indicator); 
    mAgeReqIndicator.setImageResource(R.drawable.greencheck_small_context_icon); 
    mAgeReqIndicator.setScaleType(ScaleType.CENTER_INSIDE); 
    mAgeReqIndicator.setCropToPadding(true); 
    //mAgeReqIndicator.setMaxHeight((int) mReoccurence.getTextSize()); 
    //mAgeReqIndicator.setMinimumHeight((int) mReoccurence.getTextSize()); 

      Log.d(TAG, "getTextSize() as float: " + mReoccurence.getTextSize()); 
      Log.d(TAG, "getTextSize() as int: " + (int) mReoccurence.getTextSize()); 
} 

回答

-1

使用RelativeLayout而不是LinearLayout。此外,尽量避免使用重量等属性,除非有必要。

+0

“尽量避免使用重量等属性,除非有必要”您能否详细说明?重量不被弃用... –