要实现跑马灯效果 文字一定要够长。
设置 重复次数 获取焦点
记得 放
android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true"
系统会对Button中所有的英文字母自动进行大写转换,可以配置属性禁用
设置按钮背景色无效的话 去themes.xml 文件修改style,加一个.Bridge
Button btn = findViewById(R.id.btn);
btn.setText("ClickOK");
// 点击事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 收到点击效果
Log.e(TAG, "onClick: ");
}
});
// 长按事件
btn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Log.e(TAG, "onLongClick: ");
return false;
}
});
// 触摸事件
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.e(TAG, "onTouch: ");
// 返回为True 的话 点击事件就会到此结束了
return false;
}
});
public void leoClick(View view) {
Log.e(TAG, "leoClick " );
}
获取输入的文本
String s = et.getText().toString();
src 图片资源
scaleType 缩放类型
maxHeight 最大高度 maxWidth 最大宽度
imgView = findViewById(R.id.img_view);
imgView.setImageResource(R.drawable.demo2);
// 默认值 缩放后放置于中间
imgView.setScaleType(ImageView.ScaleType.FIT_CENTER);
// 最主要的目的是把图片显示在里面
imgView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
// 不改变 原图的大小 从左上角开始绘制 ,超过的部分做剪裁处理
imgView.setScaleType(ImageView.ScaleType.MATRIX);
用于界面上显示一个进度条,表示我们的程序在加载一些数据。
有两种形式 progress_horizontal 和 progress_circular 形式
显示与隐藏的可以通过visiable invisiable 和 gone 进行设定
所有的安卓控件都有这个属性 Visiablity 这个属性
if(pb.getVisibility() == View.GONE){
pb.setVisibility(View.VISIBLE);
}else {
pb.setVisibility(View.GONE);
}
int progress = pb2.getProgress();
progress += 10;
pb2.setProgress(progress);
创建一个通知 并且发送·
private NotificationManager manager;
private Notification notification;
// 1 创建通知管理
manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//2 创建一个通知 channel
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel channel = new NotificationChannel("leo","测试下",NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
}
// 3 创建一个通知
// 3.1 创建一个跳转的意图 点击通知进行跳转
Intent intent = new Intent(this, NotificationActivity.class);
PendingIntent p_intent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// context
notification = new NotificationCompat.Builder(this,"leo").setContentTitle("温馨提示")
.setContentText("这是一个通知哦")
.setSmallIcon(R.drawable.baseline_access_alarm_24)
.setColor(Color.parseColor("#ff0000"))
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.demo2))
.setContentIntent(p_intent)
.setAutoCancel(true)
.build();
Button sendBtn = findViewById(R.id.send_noti);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 发送通知
manager.notify(1,notification);
}
});
Button cancelBtn = findViewById(R.id.cancel_noti);
cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 取消发送通知
manager.cancel(1);
}
});
显示自己的ToolBar,在theme 中设置NoActionBar
Toolbar tb = findViewById(R.id.tb);
tb.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
在当前的界面演出一个对话框。
// 弹出对话框
// 1构造器
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
// 设置内容
dialog.setTitle("This is My oscillator")
.setMessage("Something I know")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// 确认的点击
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
// 显示
dialog.show();
弹出框如下
void showPopWindow(View view){
// 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。
// 不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
View popView = getLayoutInflater().inflate(R.layout.popup,null);
// focusable 最后的一个参数 点击空白处可以退出
PopupWindow popUpWindow = new PopupWindow(popView, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,true);
// 后面两个参数为宽高
//显示在view 的下方 后面两个参数为X Y 轴的偏移
popUpWindow.showAsDropDown(view,90,20);
// 按钮的监听
Button btn1 = popView.findViewById(R.id.pop_btn_1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 消失
popUpWindow.dismiss();
}
});
Button btn2 = popView.findViewById(R.id.pop_btn_2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 消失
popUpWindow.dismiss();
}
});
}