2016-04-25 3 views
0

Я создаю диалог оповещения о щелкнув ImageView .Code приводится ниже:Настройка цвета фона кнопки изменяет размер кнопки

imgEditStatus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       AlertDialog.Builder builder = new AlertDialog.Builder(ProfileActivity.this); 
       inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View dialogView = inflater.inflate(R.layout.dialog_edit_status, null); 
       builder.setView(dialogView); 
       dialog = builder.create(); 
       dialog.show(); 

       final EditText edtStatus = (EditText) dialogView.findViewById(R.id.editStatus); 

       Button btnOK = (Button) dialogView.findViewById(R.id.btnOK); 
       // btnOK.getBackground().setColorFilter(getResources().getColor(R.color.orange_color)), PorterDuff.Mode.SRC_ATOP); 
       btnOK.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         // Toast.makeText(getApplicationContext(), "OK clicked", Toast.LENGTH_SHORT).show(); 
         String statusText = edtStatus.getText().toString().trim(); 
         new UpdateStatusTask().execute(statusText); 
        } 
       }); 

       Button btnCancel = (Button) dialogView.findViewById(R.id.btnCancel); 
       btnCancel.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         Toast.makeText(getApplicationContext(), "Cancel clicked", Toast.LENGTH_SHORT).show(); 
         dialog.dismiss(); 
        } 
       }); 
      } 
     }); 

dialog_edit_status.xml

<?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:orientation="vertical"> 

    <EditText 
     android:id="@+id/editStatus" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="@dimen/margin20" 
     android:hint="Enter your status here" 
     android:paddingBottom="@dimen/padding10" 
     android:padding="@dimen/padding10" 
     android:textColor="@color/black_color" 
     android:textColorHint="@color/gray_color" 
     android:layout_marginBottom="@dimen/margin10"/> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="@dimen/margin10"> 

     <Button 
      android:id="@+id/btnOK" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="@dimen/margin50" 
      android:text="OK" 
      android:background="@color/orange_color" 
      android:textColor="@color/white_color"/> 

     <Button 
      android:id="@+id/btnCancel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="@dimen/margin50" 
      android:text="Cancel" 
      android:textColor="@color/white_color"/> 

    </RelativeLayout> 
</LinearLayout> 

I Я пытаюсь установить оранжевый цвет на фоне кнопки OK. Но его размер изменился. Я пытался использовать следующий код:

btnOK.getBackground().setColorFilter(getResources().getColor(R.color.orange_color)), PorterDuff.Mode.SRC_ATOP); 

он дает мне ошибку: setColorFilter() в Drawable не может быть применен к (межд). Пожалуйста, помогите мне исправить проблему.

+1

btnOK.setBackgroundColor (getResources(). GetColor (R.color.your_color)); используйте этот –

+0

Тот же выпуск. Размер кнопки увеличен. –

+0

Проверьте мой ответ ниже –

ответ

0

Если вы хотите изменить цвет фона, но сохраните другие стили, то ниже может помочь.

btnOK.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.MULTIPLY); 
+0

Он работает, но цвет фона кнопки отличается от того, что я использовал –

+0

u может изменить цвет ура, что бы вы ни захотели :) например, я размещаю R.color.colorAccent, вы можете разместить здесь u цвет R.color .orange_color –

+0

, и если это поможет вам любезно принять ответ как правильно :) Happy Code –

0

попробовать это:

btnOK.setBackgroundColor(getResources().getColor(R.color.orange_color)); 
+0

Еще одна проблема. –

Смежные вопросы