所以目前我正在我的应用程序中放入一个复活节彩蛋,我希望它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) 从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的新订单.我只是想了解这个问题.
谢谢.
所有
我想要旋转特定角度的图像像下面的图片.我有旋转代码,但它旋转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
我想在我的应用程序中为Button提供以下设置.您可以将其视为按钮的一些主题更改.
样式圆形或正常
颜色红色或黄色或蓝色或任何颜色代码
我知道在XML中定义Shape,我可以实现Rounded Corners.有了setBackgroundColor,我可以将任何颜色设置为背景.
问题
根据我称之为的顺序setBackgroundColor,两者都 setBackground相互重叠.所以我无法在同一个按钮上实现这两种效果.我怎样才能同时实现这两种效果.如何从单个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
与本期附件类似,我按钮的角阴影看起来很狡猾。但是通过自定义边缘和圆角处理,按钮似乎失去了高度并且没有波纹/点击效果。知道我做错了什么吗?
材质版本为 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) 为什么BadgeDrawable没有显示在任何地方?我想补充的MaterialCardView,MaterialButton等它不显示。任何人都知道如何解决这个问题?或者有相同的库来替换它?
这是代码:
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 项目中使用材料设计组件。
我的问题是我无法更改材质按钮的禁用背景颜色(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
我想在按钮上有发光效果(在 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
我想更改活动切换按钮的颜色。但仅仅改变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
android ×10
android-button ×10
material-components-android ×2
android-xml ×1
invisible ×1
kotlin ×1