标签: android-button

设置android按钮不可见,但仍然附加onClick Listener

所以目前我正在我的应用程序中放入一个复活节彩蛋,我希望它Button是隐形的,但是当点击时(Rick roll).到目前为止,当我说:

Button.setVisibility(view.VISIBLE);
Button.setBackgroundColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)

然后是我的onClickListener.唯一的问题是我必须有文本Button才可以点击它.当我拿出文本并使其完全不可见时,onClickListener从来没有因某种原因被调用?

这是我的 OnClickListener

wonderWhatThisDoes.setOnClickListener(new Button.OnClickListener()
{
    @Override
    public void onClick(View v) {
        mMediaPlayer = MediaPlayer.create(About.this, R.raw.surprise);
        mMediaPlayer.start();
        Context context = getApplicationContext();
        CharSequence text = "Congrats on finding our easter egg! Enjoy... :]";
        Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
        toast.show();
    }
});
Run Code Online (Sandbox Code Playgroud)

android invisible android-button

8
推荐指数
3
解决办法
2万
查看次数

在ICS中确定/取消按钮顺序

从SDK 14开始,首选顺序是取消/确定,而不是之前的确定/取消.我不打算参加关于这是不是一个好主意的辩论,这不是我的问题的主题.

问题是,ADK鼓励您使用SDK> = 14的设备使用新订单,为您提供以下Lint

布局使用错误的按钮顺序API> = 14:创建一个相反顺序的layout-v14/layout.xml文件:取消按钮应位于左侧("@ string/send | Cancel",应为"Cancel | @"字符串/发送")

好的,我会坚持,这对我来说不是问题,我理解我应该遵循建议,以避免烦扰用户.

但事情就是这样......在我的三星Galaxy S II上,在ICS上运行,系统界面本身似乎不遵循新订单.以下是一些屏幕截图示例:

在此输入图像描述

订单是旧订单.请注意,我使用的是我手机的官方ICS版本(不是自定义ROM).我的Galaxy Tab 2(也运行官方ICS)的顺序是一样的.在某些对话框中,订单是正确的(取消/确定)我看到的唯一区别是主题(使用Holo主题的对话框有新订单;其他,旧订单).以下是使用Holo从设置(设置系统日期)和我的应用程序中的DatePickerDialog的屏幕截图:

在此输入图像描述

这非常令人不安.看起来按钮的顺序与主题相关,而不是版本相关.或者只是三星不遵循Android的设计模式?

我认为活动(当他们有确定/取消按钮时)也应遵循相同的顺序.而且,在我的手机上,日历的"创建事件"活动的顺序错误(并且活动不使用"孔"主题):

在此输入图像描述

无论如何,我将在我的应用程序中使用Holo主题设备来自Honeycomb,因此我将保留SDK> = 14的新订单.我只是想了解这个问题.

谢谢.

android android-layout android-button

8
推荐指数
1
解决办法
3301
查看次数

有限度旋转拨号

所有
我想要旋转特定角度的图像像下面的图片.我有旋转代码,但它旋转360度,但我只想要特定度数,并获得选定的数字,这是拨号的上侧.

在此输入图像描述


下面是我的代码.我的自定义查看此工作正常但性能湖.

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PointF;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Log;
import android.view.GestureDetector.OnGestureListener;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;

public class MyDialView extends View implements OnGestureListener{
    private static Bitmap bimmap;
    private static Paint paint;
    private static Rect bounds;
    private int totalNicks = 100;
    private int currentNick = 0;
    private GestureDetector gestureDetector;
    private float dragStartDeg = Float.NaN;
    float dialerWidth = 0,dialerHeight = 0;

    private static Paint createDefaultPaint() {
        Paint paint = …
Run Code Online (Sandbox Code Playgroud)

android image-rotation android-imageview android-canvas android-button

8
推荐指数
1
解决办法
3633
查看次数

圆角和背景颜色Android按钮的动态设置?

我想在我的应用程序中为Button提供以下设置.您可以将其视为按钮的一些主题更改.

样式圆形或正常

颜色红色或黄色或蓝色或任何颜色代码

我知道在XML中定义Shape,我可以实现Rounded Corners.有了setBackgroundColor,我可以将任何颜色设置为背景.

问题

根据我称之为的顺序setBackgroundColor,两者都 setBackground相互重叠.所以我无法在同一个按钮上实现这两种效果.我怎样才能同时实现这两种效果.如何从单个Button类中获得多个按钮.提前致谢.

在此输入图像描述

android android-theme android-button android-styles

8
推荐指数
2
解决办法
7305
查看次数

Android从onActivityResult接收值并将其设置为Button

使用此代码,我可以轻松地动态插入一些布局.布局包含一个Button我想要启动的startActivityForResult.现在,当我得到结果(文本)时,我想将其设置为Button.

btnAggiungiCampo.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        PopupMenu popup = new PopupMenu(this, btnAggiungiCampo);
        popup.getMenuInflater().inflate(R.menu.menu_campi, popup.getMenu());
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                View child = null;
                if (item.getTitle().equals(getString(R.string.Text))) {
                    child = getLayoutInflater().inflate(R.layout.inflate_campo, null);
                    rlCampi.addView(child);

                    Button btnGeneraPSW = (Button) child.findViewById(R.id.imageButton3);
                                btnGeneraPSW.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        Intent inte = new Intent(this, Genera_password.class);
                                        startActivityForResult(inte, REQ_CODE_ACT1);
                                    }
                                });
                }
            }
        }
    }
}

@Override
public void onActivityResult(int requestCode, int resultCode, …
Run Code Online (Sandbox Code Playgroud)

android android-button android-activity startactivityforresult

8
推荐指数
2
解决办法
3184
查看次数

MDC Button MaterialShapeDrawable 奇怪的阴影和无波纹

本期附件类似,我按钮的角阴影看起来很狡猾。但是通过自定义边缘和圆角处理,按钮似乎失去了高度并且没有波纹/点击效果。知道我做错了什么吗?

在此处输入图片说明

材质版本为 1.1.0-alpha07

class CurvedEdgeTreatment (private val size: Float) : EdgeTreatment(), Cloneable {

    public override fun clone(): EdgeTreatment {
        return super<EdgeTreatment>.clone()
    }

    override fun getEdgePath(length: Float, center: Float, interpolation: Float, shapePath: ShapePath) {
        shapePath.quadToPoint(center, -size * interpolation, length, 0f)
    }
}

class ButtonActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_button)

        val shapeAppearanceModel = ShapeAppearanceModel().apply {
            setAllCorners(RoundedCornerTreatment(12.dpToPx(resources.displayMetrics).toFloat()))
            setAllEdges(CurvedEdgeTreatment(3.dpToPx(resources.displayMetrics).toFloat()))
        }

        val backgroundDrawable = MaterialShapeDrawable(shapeAppearanceModel).apply {
            setTint(ContextCompat.getColor(this@ButtonActivity, R.color.color_secondary))
            shadowCompatibilityMode = SHADOW_COMPAT_MODE_ALWAYS
            elevation = 12f
            setUseTintColorForShadow(true)
            paintStyle = Paint.Style.FILL …
Run Code Online (Sandbox Code Playgroud)

android android-button mdc-components

8
推荐指数
0
解决办法
595
查看次数

徽章可绘制未显示

为什么BadgeDrawable没有显示在任何地方?我想补充的MaterialCardViewMaterialButton等它不显示。任何人都知道如何解决这个问题?或者有相同的库来替换它?

这是代码:

val badgeDrawable = BadgeDrawable.create(holder.itemView.context)
badgeDrawable.number = 10
badgeDrawable.badgeGravity = BadgeDrawable.TOP_END
badgeDrawable.backgroundColor = holder.itemView.context.getColor(R.color.colorAccent)
holder.itemView.home_cardview.overlay.add(badgeDrawable)
badgeDrawable.updateBadgeCoordinates(holder.itemView.home_cardview, null)
Run Code Online (Sandbox Code Playgroud)

这种方法也不起作用:

BadgeUtils.attachBadgeDrawable(badgeDrawable, anchor, null);
Run Code Online (Sandbox Code Playgroud)

顺便说一下,在新版本中 compatBadgeParent 是必填字段

android android-button kotlin

8
推荐指数
2
解决办法
3860
查看次数

如何更改主题中的材质按钮禁用状态背景颜色?

我在我的 android 项目中使用材料设计组件。

我的问题是我无法更改材质按钮的禁用背景颜色(https://material.io/develop/android/components/material-button/)。

我想在我的主题中更改DISABLED颜色,但我不知道如何做到这一点。

我尝试查看Widget.MaterialComponents.Button样式,发现它具有"backgroundTint"属性:

<item name="backgroundTint">@color/mtrl_btn_bg_color_selector</item>
Run Code Online (Sandbox Code Playgroud)

但它没有禁用状态样式,见下文:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="?attr/colorPrimary" android:state_enabled="true"/>
  <item android:alpha="0.12" android:color="?attr/colorOnSurface"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

我总是可以自己添加它,但是禁用按钮的初始灰色来自哪里?

在我的主题中全局更改此颜色的最佳方法是什么?

PS我正在使用Theme.MaterialComponents.NoActionBar主题。

谢谢!

android android-button material-design material-components material-components-android

8
推荐指数
2
解决办法
4762
查看次数

Android:为按钮添加霓虹灯发光效果

我想在按钮上有发光效果(在 android studio 中),如图所示:

按钮设计图像

我不需要背景图像,因此为了获得这种效果,我尝试在 xml 文件中执行此操作。我为按钮添加了一个描边,并为按钮提供了一个阴影(与描边颜色相同)。

我使用了 90 度角的线性渐变,开始和结束颜色与笔划相同,中心颜色与背景颜色相同。请看代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <layer-list>
        <item android:right="5dp" android:top="0dp">
            <shape>
                <corners android:radius="50dp" />
                <gradient
                    android:angle="45"
                    android:startColor="#8008c3fa"
                    android:endColor="#8008c3fa"
                    android:type="linear"
                    />
            </shape>
        </item>
        <item android:bottom="5dp" android:left="6dp" android:right="10dp" android:top="5dp">
            <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
                <corners
                    android:radius="50dp"
                    />
                <gradient
                    android:angle="90"
                    android:centerX="50%"
                    android:centerColor="@color/trans_parent"
                    android:startColor="#8008c3fa"
                    android:endColor="#8008c3fa"
                    android:type="linear"
                    />
                <padding
                    android:left="0dp"
                    android:top="0dp"
                    android:right="0dp"
                    android:bottom="0dp"
                    />
                <size
                    android:width="270dp"
                    android:height="60dp"
                    />
                <stroke
                    android:width="2.5dp"
                    android:color="#08c3fa"
                    />
            </shape>
        </item>
    </layer-list>
</item>

</selector>
Run Code Online (Sandbox Code Playgroud)

对于上面的 xml,我得到以下结果:

代码的结果图像

虽然设计和结果图像看起来完全不同,但我认为如果我们增加中心颜色高度并保持阴影的淡出效果,它就可以工作。但我不能做同样的事情。

android android-xml android-button android-drawable android-shapedrawable

8
推荐指数
2
解决办法
1万
查看次数

“更改材质轮廓颜色”按钮不起作用

我想更改活动切换按钮的颜色。但仅仅改变rippleColor 就会产生影响。我希望自定义活动按钮的背景颜色和文本颜色。

<style name="ToggleButtonGroupStyle" parent="Widget.MaterialComponents.Button.OutlinedButton">
            <item name="rippleColor">@color/colorAccent</item>
</style>

Run Code Online (Sandbox Code Playgroud)

在下面的toggleButtonGroup中,我使用了上面的这种样式:

         <com.google.android.material.button.MaterialButtonToggleGroup
            android:id="@+id/priority_btn_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_alignParentLeft="true"
            app:selectionRequired="true"
            app:singleSelection="true"
            app:checkedButton="@+id/btn_one"
            >

            <com.google.android.material.button.MaterialButton
                android:id="@+id/btn_one"
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="@dimen/priority_btn_width"
                android:layout_height="wrap_content"
                android:shadowColor="@color/project_text"
                android:text="0" />

            <com.google.android.material.button.MaterialButton
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="@dimen/priority_btn_width"
                android:layout_height="wrap_content"
                android:text="!" />

            <com.google.android.material.button.MaterialButton
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="@dimen/priority_btn_width"
                android:layout_height="wrap_content"
                android:text="!!" />

            <com.google.android.material.button.MaterialButton
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="!!!" />


        </com.google.android.material.button.MaterialButtonToggleGroup>

Run Code Online (Sandbox Code Playgroud)

有人能给我提示一下这里的问题是什么吗?谢谢 :)

android android-theme android-button android-styles material-components-android

8
推荐指数
1
解决办法
2752
查看次数