다음과 같은 버튼이 있습니다.
<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
이며 AA
16 진 알파 값입니다. 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) 입니다.