setbackgroundcolorjava中关于addActionListener的问题

setbackgroundcolor  时间:2021-08-26  阅读:()

如何设置actionbar让分割线改变颜色

android 布局 layout relativelayout   除了沉浸模式外,Android 4.4还有新的API,能使应用内的状态栏和虚拟按钮透明。

其他更多的Android 4.4 APIs可以看这里。

  如果要使应用内的状态栏和虚拟按钮变成透明有两种方法。

  一种是代码方式:   ?1   2   3Window window = getWindow();   window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);   window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);   另外一种是使用两个新的主题风格:   Theme.Holo.NoActionBar.TranslucentDecor和Theme.Holo.Light.NoActionBar.TranslucentDecor。

  但是这种方式只支持Android4.4以上系统,所以为了保持兼容性,我们还是采用代码方式比较好。

只需要先判断,如果是4.4以上系统才启用代码。

  开启后上下系统栏都透明了。

  但是如果应用本身是带有actionbar或者标题栏的话会就会变得比较尴尬,内容会在上面露出来。

这个时候需要在布局文件里加入android:fitsSystemWindows="true"。

  android:id="@+id/layout"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:background="#c8c8c8" >   android:id="@+id/iew"   android:layout_width="match_parent"   android:layout_height="match_parent" />   但是这样的话内容就不能从透明的虚拟按钮下穿过,没原来那么好看。

我们可以按照以前一样把根布局设置一个高度为系统栏高度和ActionBar高度的内边距就可以。

  同时关于获取ActionBar和状态栏的高度,发现用原来的方法有时候会获取的值为0。

自己google找了一下,找到两个前辈提供的获取高度方法,获取ActionBar高度,获取状态栏高度。

  8if (android.os.Build.VERSION.SDK_INT > 18) {   Window window = getWindow();   window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);   window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);   //设置根布局的内边距   RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.layout);   relativeLayout.setPadding(0, getActionBarHeight()+getStatusBarHeight(), 0, 0);   }   27// 获取手机状态栏高度   public int getStatusBarHeight() {   Class c = null;   Object obj = null;   Field field = null;   int x = 0, statusBarHeight = 0;   try {   c = Class.forName(.android.internal.R$dimen");   obj = c.newInstance();   field = c.getField("status_bar_height");   x = Integer.parseInt(field.get(obj).toString());   statusBarHeight = getResources().getDimensionPixelSize(x);   } catch (Exception e1) {   e1.printStackTrace();   }   return statusBarHeight;   }   // 获取ActionBar的高度   public int getActionBarHeight() {    = new TypedValue();   int actionBarHeight = 0;   if (getTheme().resolveAttribute(android.R.attr.actionBarSize,, true))// 如果资源是存在的、有效的   {   actionBarHeight = .data, getResources().getDisplayMetrics());   }   return actionBarHeight;   }   接下来,因为我自己写的一些应用是暗色的主题的,会导致透明的状态栏和ActionBar颜色不太协调。

看到有一些应用是把状态栏的颜色设置成和ActionBar一样,这种解决方法也不错。

  具体是怎么实现的也不太清楚,我自己猜测写了一个差不多状态栏。

我是直接在根视图加入一个高度为状态栏高度的TextView,背景设置为和ActionBar一样。

具体代码如下:   8// 创建TextView   TextView textView = new TextView(this);   LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, getStatusBarHeight());   textView.setBackgroundColor(Color.parseColor("#3F9FE0"));   textView.setLayoutParams(lParams);   // 获得根视图并把TextView加进去。

  ViewGroup view = (ViewGroup) getWindow().getDecorView();   view.addView(textView);   在模拟器上看还行,但是在实际的手机当中总感觉ActionBar有点过大,所以我在背景色里加入了一些渐变,在实体手机中就比较好看一点,不会觉得ActionBar太宽了。

  android:startColor="#c8c8c8"   android:endColor="#3F9FE0"   android:angle="270"   android:type="linear"/>

JFrame的形状

这个是能改变的 给你一个实例代码 import java.awt.*; import java.awt.geom.*;//注意此包加载 import javax.swing.*; /** * 制作一个圆形按钮时,需要做两件事: * 第一件事是重载一个适合的绘图方法以画出一个图形 * 第二件事是设置一些事件使得只有当单击图形按钮的范围中的时候才会做出响应*/ public class CircleButton extends JButton{ public CircleButton(String label){ super(label); Dimension size=getPreferredSize();//获取按钮的最佳大小 //调整按钮的大小,使之变成一个方形 size.width=size.height=Math.max(size.width,size.height); setPreferredSize(size); //使jbutton不画背景,即不显示方形背景,而允许我们画一个圆的背景 setContentAreaFilled(false); } //画图的按钮的背景和标签 protected void paintComponent(Graphics g){ if(getModel().isArmed()){ //getModel方法返回鼠标的模型ButtonModel //如果鼠标按下按钮,则buttonModel的armed属性为真 g.setColor(Color.LIGHT_GRAY); }else{ //其他事件用默认的背景色显示按钮 g.setColor(getBackground()); } //fillOval方法画一个矩形的内切椭圆,并且填充这个椭圆 //当矩形为正方形时,画出的椭圆便是圆 g.fillOval(0,0,getSize().width-1,getSize().height-1); //调用父类的paintComponent画按钮的标签和焦点所在的小矩形 super.paintComponents(g); } //用简单的弧充当按钮的边界 protected void paintBorder(Graphics g){ g.setColor(getForeground()); //drawOval方法画矩形的内切椭圆,但不填充,只画出一个边界 g.drawOval(0,0,getSize().width-1,getSize().height-1); } Shape shape;//用于保存按钮的形状,有助于侦听单击按钮事件 //判断鼠标是否点在按钮上 public boolean contains(int x,int y){ //如果按钮边框,位置发生改变,则产生一个新的形状对象 if((shape==null)||(!shape.getBounds().equals(getBounds()))){ //构造椭圆型对象 shape=new Ellipse2D.Float(0,0,getWidth(),getHeight()); } //判断鼠标的x,y坐标是否落在按钮形状内 return shape.contains(x,y); } public static void main(String[] args){ JButton button=new CircleButton("Click me");//产生一个圆形按钮 button.setBackground(Color.green);//设置背景色为绿色 //产生一个框架显示这个按钮 JFrame frame=new JFrame("图形按钮"); frame.getContentPane().setBackground(Color.yellow); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(but

Android开发中,为什么TextView.setBackgroundColor(R.color.all_white);没有效果?谢谢!

试下这个. lassMyTextViewextends Activity { private TextView mTextView;//声明TextView对象 /** Called when the activity is first created. */ @Override publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView)findViewById();//取得TextView对象 mTextView.setText("我的第一个文本");//设置TextView显示的内容 mTextView.setTextColor(Color.GREEN);//设置TextView的颜色 mTextView.setBackgroundColor(Color.WHITE);//设置TextView的背景色 } }

怎样自定义TabView

你可以参照着下面的代码自己修改一下就好了:for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) { tabHost.setOnTabChangedListener(new OnTabChangeListener(){ @Override public void onTabChanged(String tabId) { // TODO Auto-generated method stub for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) { tabHost.getTabWidget().getChildAt(i).setBackgroundColor(R.color.transparent); //unselected } tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#000011")); // selected }

怎样设置TfrxCrossView的颜色

晕,你怎么能直接在子线程内更新ui啊,应该用handler来更新控件,代码给你改一下了 Runnable begin = new Runnable(){ @Override public void run(){ try{ Thread.sleep(2000); Message msg = new Message(); msg.what = 100; this.mHandler.sendMessage(msg); } catch(InterruptedException e){} } }; private Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 100: 1.setBackgroundColor(Color.RED); break; } };

java中关于addActionListener的问题

这里的this 指的是你的方法或成员或操作火灾的这个类,this在这里的作用是说明,你必须在该类里面来实现ActionListener里面的actionPerformed方法,其实btnUp.addActionListener(Object t);这里的参数的意思是,这个t是哪个类的对象,那么那个类就负责来实现接口的方法,不知道你理解了没有。

import java.awt.*; import java.awt.event.*; public class Bnbn //implements ActionListener { Frame frmFrame; Button btnUp, btnDown; public Bnbn() { frmFrame = new Frame("按钮应用"); frmFrame.setLayout(new GridLayout(2,1)); ss s=new ss();//产生内部类对象作监视器 //产生按钮一 btnUp = new Button("上"); btnUp.setActionCommand("btnUp"); btnUp.addActionListener(s); //产生按钮二 btnDown = new Button("下"); btnDown.setActionCommand("btnDown"); btnDown.addActionListener(s); frmFrame.add(btnUp); frmFrame.add(btnDown); frmFrame.pack(); frmFrame.setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } class ss implements ActionListener //创建内部类作监视器 { public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if ( cmd.equals("btnDown") ) { if (btnUp.getBackground()==Color.BLUE) { btnUp.setBackground(Color.red); } else { btnUp.setBackground(Color.blue); } } else { if (btnDown.getBackground()==Color.BLUE) { btnDown.setBackground(Color.red); } else { btnDown.setBackground(Color.blue); } } } } public static void main(String[] args) { new Bnbn(); } }

Ceranetworks顶级合作伙伴 香港E3 16G 299元 香港E5 32G 650元 美国E3 16G 650元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

特网云,美国独立物理服务器 Atom d525 4G 100M 40G防御 280元/月 香港站群 E3-1200V2 8G 10M 1500元/月

特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。公司名:珠海市特网科技有限公司官方网站:https://www.56dr.com特网云为您提供高速、稳定、安全、弹性的云计算服务 计算、存储、监控、安全,完善...

ZJI:520元/月香港服务器-2*E5-2630L/32GB/480G SSD/30M带宽/2IP

ZJI发布了一款7月份特别促销独立服务器:香港邦联四型,提供65折优惠码,限量30台(每用户限购1台),优惠后每月520元起。ZJI是原来Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月启用新域名ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务。下面列出这款服务器的配置信息。香港邦联四型CPU:2*E5-2...

setbackgroundcolor为你推荐
表单控件web表单控件类型有哪些互联网接入互联网接入口指的是什么组或资源的状态不是执行请求操作的正确状态无法启动承载网络,组或资源状态下不是执行请求操作的正确状态!网不易小学生上网弊大于利监控设备安装家庭如何安装监控设备混乱模式拳皇2002李梅的混乱模式出招物联网公司排名求消防物联网公司排名?榜单出来了吗上海网络维护公司公司网络维护,上海的哪家最专业啊ldap统一用户认证介绍H3CTE的H3CTE认证介绍信息发布管理系统信息发布系统属于建筑智能工程哪个分部
深圳虚拟主机 万网域名查询 ip查域名 北京主机租用 美国主机排名 独享100m stablehost 外国服务器 韩国加速器 payoneer 免费个人空间申请 权嘉云 韩国名字大全 域名转接 hostloc 免费网页申请 如何注册阿里云邮箱 cloudlink 上海电信测速 帽子云排名 更多