Programing

투명으로 버튼 배경

lottogame 2020. 5. 31. 09:55
반응형

투명으로 버튼 배경


버튼이 있습니다. 버튼을 누를 때 텍스트를 굵게 표시해야합니다. 그래서 나는 대담하고 정상적인 스타일을 썼습니다.

<style name="textbold" parent="@android:style/TextAppearance">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">bold</item>
</style>
<style name="textregular" parent="@android:style/TextAppearance">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">normal</item>
</style>

이제 button_states.xml이 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true"
    style="@style/textbold" />
<item android:state_focused="false" android:state_pressed="true"
    style="@style/textregular" />

<item style="@style/textregular" />
</selector> 

이 버튼의 레이아웃에서 배경도 투명하게 만들어야합니다 ... 어떻게합니까? 내 레이아웃 코드는 다음과 같습니다

<Button android:id="@+id/Btn" android:background="@drawable/button_states" />

스타일에 배경을 투명하게 포함 시키려면 어떻게해야합니까?


배경을 투명하게 만들려면을 수행하십시오 android:background="@android:color/transparent".

그러나 셀렉터를 정말 이상한 방식으로 사용하므로 문제가 조금 더 심해 보입니다. 실제로 사용하는 경우 배경 이미지를 스타일로 배치해야하지만 사용 방법이 잘못 된 것 같습니다 <item/>.

Android 소스에서 스타일이 어떻게 사용되는지 자세히 살펴보십시오. 버튼을 클릭해도 텍스트 스타일이 변경되지는 않지만 목표를 달성하는 방법에 대한 좋은 아이디어가 많이 있습니다.


배경을 투명하게 설정하는 새로운 방법을 시도하십시오

    android:background="?android:attr/selectableItemBackground"

사용하십시오 #0000(그렇지 않으면 네 개의 0만으로 간주됩니다 black) 이것은 투명한 색상 코드입니다. 직접 사용할 수는 있지만 color.xml에서 색상을 정의하여 코드를 재사용 할 수 있도록하는 것이 좋습니다.


이것을 Xml에 추가하십시오 -android:background="@android:color/transparent"

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Button"
            android:background="@android:color/transparent"
            android:textStyle="bold"/>

xml에서 다음을 사용할 수도 있습니다.

android:background="@null"

또는 코드 :

buttonVariable.setBackgroundColor(Color.TRANSPARENT);

나는 이것을 XML로 달성했다.

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

나는 사용했다

btn.setBackgroundColor(Color.TRANSPARENT);

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

선택기는 스타일이 아닌 드로어 블에만 작동합니다. 참고


First, to make the button background transparent use the following attribute as this will not affect the material design animations:

style="?attr/buttonBarButtonStyle"

There are many ways to style your button. Check out this tutorial.

Second, to make the text bold on pressed, use this java code:

btn.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {
            // When the user clicks the Button
            case MotionEvent.ACTION_DOWN:
                btn.setTypeface(Typeface.DEFAULT_BOLD);
                break;

            // When the user releases the Button
            case MotionEvent.ACTION_UP:
                btn.setTypeface(Typeface.DEFAULT);
                break;
        }
        return false;
    }
});

You can achieve that by setting the colors alpha channel.

The color scheme is like this #AARRGGBB there A stands for alpha channel(transparency), R stands for red, G for green and B for blue.


Step 1: Create a new resource file in drawable and copy paste

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <stroke android:color="#fff" android:width="2dp"/>
    <corners android:radius="25dp"/>
    <padding android:right="15dp" android:top="15dp" android:bottom="15dp" android:left="15dp"/>
</shape>

save it as ButtonUI(let's say)

Step 2: Apply the UI to the button xml

<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="join the crew"
  android:background="@drawable/ButtonUI"
  android:textColor="#fff"/>

You apply the background color as transparent(light gray) when you click the button.

ButtonName.setOnClickListener()

In the above method you set the background color of the button.


Code:

button.setVisibility(View.INVISIBLE);

Xml:

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

You can do it easily by adding below attribute in xml file. This code was tested plenty of time.

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

참고URL : https://stackoverflow.com/questions/4954102/button-background-as-transparent

반응형