我正在使用Android中的一个Button遇到奇怪的行为.
我创建了一个自定义按钮(MyButton),我在其上放了一些方法来扩展deafult View,比如添加一个禁用/启用方法来更改按钮.
这是MyButton的代码:
public class MyButton extends Button {
/** Enabled. */
private boolean enabled = true;
/** The default bg. */
private Drawable defaultBG = null;
/** The disabled drawable. */
private int disabledDrawable = 0;
/******************/
/** CONSTRUCTORS **/
/** [...] **/
/******************/
/**
* Disable.
*/
public void disable()
{
this.setClickable(false);
this.setFocusable(false);
Log.d("MY_BUTTON", "DISABLED!!");
if(!enabled || disabledDrawable == 0)
return;
defaultBG = this.getBackground();
this.setBackgroundResource(disabledDrawable);
enabled = false;
}
/**
* Enable.
*/
public void enable()
{ …Run Code Online (Sandbox Code Playgroud) 我想要两个彼此相邻的按钮,如下所示:[使用][取消](这些只是带有背景图像的按钮,而不是图像按钮)
但结果很奇怪,第一个按钮填满了所有空间,在线性布局中是这样的:[.........Use...........] 而取消按钮是未显示。两个按钮的layout_width都是“wrap_content”,并且线性布局的方向是水平的,有什么问题?
得到一个代码:
<LinearLayout
android:layout_width="fill_parent"
android:orientation="horizontal"
android:id="@+id/linearLayout2"
android:layout_gravity="bottom"
android:layout_height="fill_parent"
android:layout_weight="1">
<Button
android:text="Use"
android:height="14dp"
android:textSize="15sp"
android:textColor="#ffffff"
android:background="@drawable/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/UseButtonDialog"
android:layout_gravity="bottom">
</Button>
<Button android:text="Cancel"
android:background="@drawable/button1"
android:height="14dp"
android:textSize="15sp"
android:textColor="#ffffff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/CancelButtonDialog"
android:layout_gravity="bottom">
</Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我应该对图像做些什么?
我正在"尝试"制作一个Android应用程序.我试图让它成为当我点击一个按钮它将带我到另一个布局.我已经完成了其他所有事情,我很确定......除了这个之外还有0个错误.无法访问的代码.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
Button bUtuube = (Button) findViewById(R.id.Utuube);
bUtuube.setOnClickListener(new View.OnClickListener() {
Run Code Online (Sandbox Code Playgroud)
我收到了无法访问的代码错误Button bUtuube = (Button) findViewById(R.id.Utuube).那是红线出现的地方.
干杯
我有两个不同父母的按钮.
我正在尝试将按钮效果应用于按钮触摸.
这是我的代码:
public class ButtonHighlighterOnTouchListener implements OnTouchListener {
final Button button;
public ButtonHighlighterOnTouchListener(final Button imageButton) {
super();
this.button = imageButton;
}
public boolean onTouch(final View view, final MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
button.getBackground().setColorFilter(Color.parseColor("#B7B2B0"), PorterDuff.Mode.MULTIPLY);
button.invalidate();
break;
case MotionEvent.ACTION_CANCEL:
button.getBackground().clearColorFilter();
button.invalidate();
break;
case MotionEvent.ACTION_UP:
button.getBackground().clearColorFilter();
button.invalidate();
break;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
它将效果应用于按钮,但问题是因为我有2个按钮,即使我点击一个按钮,效果也会应用到另一个按钮.
请帮我解决这个问题.
我要做的是更改我编写的自定义DialogFragment的默认背景.通常,我会通过更改XML布局文件来执行此操作,但是,对于DialogFragment,这些按钮在布局文件中不存在.
本质上,我试图访问setPositiveButton,setNegativeButton和setNeutral按钮以修改它们.或者,我接下来尝试通过id获取它们,但是,因为它们没有在布局文件中定义,所以我没有相应的id.我已经找到了很多如何修改其余布局的例子,但我找不到任何正/中性/负面按钮可以修改的地方.
理想情况下,我可以在下面的代码块中执行此操作:
.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
...
}
})
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我在我的java代码中创建了一些按钮.问题是我为这个按钮创建的文本总是居中,你知道如何改变位置.我搜索并没有找到,因为我在java代码中创建它,而不是在xml中创建它
Button moncasier = new Button (this);
moncasier.setText("casier numéro :"+i);
moncasier.setTextSize(30);
moncasier.setBackground(getResources().getDrawable(R.drawable.img_casier));
layoutDesCasiers = (LinearLayout)findViewById(R.id.affichecasier);
layoutDesCasiers.addView(moncasier);
Run Code Online (Sandbox Code Playgroud)
谢谢你花在我身上的时间,抱歉我的英语不好
我正在尝试覆盖后退按钮以停止音频播放器并关闭媒体播放器活动,但我注意到音量按钮不再起作用。我想覆盖代码存在错误。附注。在我的MediaControllerI overridehide()方法中,始终显示控件。
mediaController = new MediaController(this)
{
@Override
public void hide() {
// TODO Auto-generated method stub
//do nothing
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (mediaPlayer != null) {
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;
}
super.hide();
Activity a = (Activity)getContext();
a.finish();
}
return true;
}
};
Run Code Online (Sandbox Code Playgroud) android android-button android-mediaplayer android-event android-activity
在我当前的android布局中,我有5个透明的按钮。
我希望将其形状更改为完全圆形,并为其添加3D效果,例如该问题已接受答案中的阴影
我该怎么办?
当前外观:

Android 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"
android:background="@drawable/menubackground" >
<Button
android:id="@+id/btnSearchHomeDate"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:background="@drawable/circle2"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="10"
android:text="Date"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeGame"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:background="@drawable/circle2"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="10"
android:text="Game"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeMedValues"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:background="@drawable/circle2"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Meditation Values"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeAttValues"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:background="@drawable/circle2"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Attention Values"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeScore"
android:layout_width="270dp"
android:layout_height="60dp" …Run Code Online (Sandbox Code Playgroud) 我心中已经有了一个Button内部ScrollView。
<ScrollView>
<LinearLayout>
...
<Button/>
...
<LinearLayout/>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
我正在使用此按钮来记录语音。当它捕获到MotionEvent.ACTION_DOWN事件时,我开始重新编码,并在MotionEvent.ACTION_DOWN事件停止时将其停止。
buttomRecord.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
startRecording();
return true;
}
else if(event.getAction() == MotionEvent.ACTION_UP){
stopRecording();
return true;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
当用户录制语音,如果这个问题是ScrollView滚动向上或向下,该按钮就会失去焦点,从来没有抓MotionEvent.ACTION_UP事件。
怎样才能锁定焦点Button,而我拿着它或禁用ScrollView滚动?
android ontouchlistener android-scrollview android-button motionevent
我正在尝试设置按钮样式,使其没有边框半径。我曾尝试将该radius属性设置为0sp,但这不起作用。下面是我的代码和结果按钮的屏幕截图,它仍然有圆角。
<com.google.android.material.button.MaterialButton
android:id="@+id/material_text_button"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:textAppearance="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_marginTop="11sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:radius="0sp"
android:text="#1 Lorem Ipsum"
android:textSize="16sp"/>
Run Code Online (Sandbox Code Playgroud)
android android-button android-studio material-components material-components-android
android-button ×10
android ×9
android-view ×1
colorfilter ×1
effects ×1
geometry ×1
java ×1
material-components-android ×1
motionevent ×1