Android에서보기에 불투명도 (알파)를 설정하는 방법 Button01을 호출합니다. setContentView(R.layout.main); View

다음과 같은 버튼이 있습니다.

<Button
     android:text="Submit"
     android:id="@+id/Button01"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content">
</Button>

onCreate()이벤트 에서는 다음과 같이 Button01을 호출합니다.

setContentView(R.layout.main);

View Button01 = this.findViewById(R.id.Button01);
Button01.setOnClickListener(this);

응용 프로그램에 배경이 있으며이 제출 버튼에서 불투명도를 설정하고 싶습니다. 이 뷰의 불투명도를 어떻게 설정합니까? Java 측에서 설정할 수 있습니까, 아니면 main.xml 파일에서 설정할 수 있습니까?

자바 측에서 시도 Button01.mutate().SetAlpha(100)했지만 오류가 발생했습니다.



답변

TextView와 비슷한 문제가있는 동안 방금 귀하의 질문을 찾았습니다. TextView를 확장하고을 재정 의하여 해결할 수있었습니다 onSetAlpha. 아마도 버튼과 비슷한 것을 시도해 볼 수 있습니다.

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

public class AlphaTextView extends TextView {

  public AlphaTextView(Context context) {
    super(context);
  }

  public AlphaTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  public AlphaTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
  }

  @Override
  public boolean onSetAlpha(int alpha) {
    setTextColor(getTextColors().withAlpha(alpha));
    setHintTextColor(getHintTextColors().withAlpha(alpha));
    setLinkTextColor(getLinkTextColors().withAlpha(alpha));
    return true;
  }
}


답변

나는 다른 사람들의 훨씬 더 복잡한 답변에 놀랐습니다 .

XML

XML에서 버튼의 색상 정의 (또는 다른보기)에서 알파를 간단하게 정의 할 수 있습니다.

android:color="#66FF0000"    // Partially transparent red

위의 예에서 색상은 부분적으로 투명한 빨간색입니다.

보기의 색상을 정의 할 때 형식은 #RRGGBB또는 #AARRGGBB이며 AA16 진 알파 값입니다. FF완전히 불투명하고 완전히 00투명합니다.

동적으로

코드에서 불투명도를 동적으로 변경해야하는 경우

myButton.getBackground().setAlpha(128);  // 50% transparent

INT의 범위가 0(완전 투명)에서 255(완전 불투명)까지입니다.


답변

이미 답변을 찾았을 것 같지만 그렇지 않은 경우 (및 다른 개발자의 경우) 다음과 같이 할 수 있습니다.

btnMybutton.getBackground().setAlpha(45);

여기서는 불투명도를 45로 설정했습니다. 기본적으로 0 (완전 투명)에서 255 (완전 불투명) 사이의 값을 설정할 수 있습니다


답변

내가 제안하는 것은 사용자 정의 ARGB 색상을 만드는 것 입니다. colors.xml 파일에 다음과 같은 을 .

<resources>
<color name="translucent_black">#80000000</color>
</resources>

그런 다음 버튼 배경을 해당 색상으로 설정하십시오.

android:background="@android:color/translucent_black"

버튼 모양을 가지고 놀고 싶을 때 할 수있는 또 다른 일은 Shape drawable 리소스 속성을 설정 것입니다.

파일 : res / drawable / rounded_corner_box.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80000000"
        android:endColor="#80FFFFFF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

그런 다음 버튼 배경으로 사용하십시오.

    android:background="@drawable/rounded_corner_box"


답변

안드로이드 문서에 따르면 alpha는 0과 1 사이의 값입니다. 설정하려면 다음과 같이 사용하십시오.

View v;
v.setAlpha(.5f);


답변

위로부터 훨씬 더 쉽습니다. 버튼에 기본 알파 속성이 있습니다.

android:alpha="0.5"

범위는 완전 투명의 경우 0이고 완전 불투명의 경우 1입니다.


답변

android:background="@android:color/transparent"

위는 내가 아는 것입니다 … 사용자 정의 버튼 클래스를 만드는 것이 가장 좋은 아이디어라고 생각합니다

API 레벨 11
최근에 나는 0과 1 사이의 값을 취하는 이 android : alpha xml 속성을 발견했습니다. 해당하는 메소드는 setAlpha (float) 입니다.