成都网站建设设计

将想法与焦点和您一起共享

java颜色渐变的代码 颜色代码渐变色

如何使用java设置LinearLayout背景为渐变色

至少有两种方案可以实现:

我们提供的服务有:做网站、网站建设、微信公众号开发、网站优化、网站认证、松江ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的松江网站制作公司

第一是使用背景图片,就是给Linearlayout添加一个background属性,值选择一张带渐变颜色的图片即可。

第二种方案是使用独立的颜色代码来替代上述一种的背景图片,比如可以在res/drawable下新建一个mycolor.xml,然后再在LinearLayout添加属性

android:background="@drawable/mycolor"即可

?xml version="1.0" encoding="utf-8"?

shape xmlns:android="

gradient

android:angle="270"

android:centerColor="#00FFFF"

android:centerX="0.5"

android:centerY="0。3"

android:endColor="#666666"

android:startColor="#0099FF" /

padding

android:bottom="7dp"

android:left="7dp"

android:right="7dp"

android:top="7dp" /

corners android:radius="4dp" /

/shape

解析:其中android:angle ="270.0"代表角度为270,由上到下的渐变,如果我改变成0那么就变成了从左到右的渐变,如果改变90.0那么渐变会从下边往上渐变,可以 多改变一下参数试试效果。centerColor中间颜色; centerX: x轴渐变中心,从左到右渐变时有意义;centerY: 同理y轴的渐变中心;endColor 渐变终点颜色,同样startColor为渐变起点颜色。

上述代码效果如下:

java 中怎样设置窗口的颜色

调用需要设置颜色的控件的setBackgroud();方法就可以了。

但是设置JFrame和JLabel的背景色,一般就是下面的做法

JFrame frame = new JFrame();

frame.setBackground(Color.Red);

JLabel l = new JLabel();

l.setBackground(Color.Yellow);

frame.add(l);

结果根本就没有反应。这是由于Swing跟AWT有千丝万缕的联系,它既要支持AWT又要有自己新的体系,所以呢,这个如果对于AWT中的Frame是可以直接通过setBackground来设置背景色,但是对于JFrame则不可以,应该采用下面的方法:

JFrame frame = new JFrame();

frame.getContentPane().setBackground(Color.Red);

而对于JLabel来说则要设置JLabel为不透明的才行,即

JLabel comp = new JLabel(value);

comp.setBackground(color);

comp.setOpaque(true);

这句代码frame.setBackground(Color.Red);

改变的是框架的颜色,框架的上面还有窗格,所以你要改变窗格的颜色才可以侧低改变框架的颜色

在主函数里加Containerframe.getContentPane()意思是获得窗格

         setBackground(Color.Red);                       改变窗格颜色

另外再附一段背景颜色渐变的代码

运行示意图如下:

import java.awt.Color;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import javax.swing.JPanel;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

class ShadePanel extends JPanel {

private static final long serialVersionUID = -2644424271663261406L;

public ShadePanel() {

super();

setLayout(null);

}

@Override

protected void paintComponent(Graphics g1) {// 重写绘制组件外观

Graphics2D g = (Graphics2D) g1;

super.paintComponent(g);// 执行超类方法

int width = getWidth();// 获取组件大小

int height = getHeight();

// 创建填充模式对象

GradientPaint paint = new GradientPaint(0, 0, Color.CYAN, 0, height,

Color.MAGENTA);

g.setPaint(paint);// 设置绘图对象的填充模式

g.fillRect(0, 0, width, height);// 绘制矩形填充控件界面

}

}

public class ShadeBackgroundImage extends JFrame {

private static final long serialVersionUID = 4693799019369193520L;

private JPanel contentPane;

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

ShadeBackgroundImage frame = new ShadeBackgroundImage();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public ShadeBackgroundImage() {

setTitle("背景为渐变色的主界面");// 设置窗体标题

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();// 创建内容面板

contentPane.setLayout(new BorderLayout(0, 0));

setContentPane(contentPane);

ShadePanel shadePanel = new ShadePanel();// 创建渐变背景面板

contentPane.add(shadePanel, BorderLayout.CENTER);// 添加面板到窗体内容面板

}

}

怎么用Java多线程实现面板颜色渐变;麻烦给你具体例子。

用定时器不行么?

顺便写了个,参考而已

import javax.swing.JFrame;

import javax.swing.JButton;

import javax.swing.Timer;

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.awt.event.ActionListener;

public class TestA extends JFrame implements ActionListener {

//-----要实现ActionListener接口

public Timer t;

public JButton jb;

//-----一个定时器一个按钮用来显示变色效果

public int red = 0;

public int green = 0;

public int blue = 0;

public TestA() {

jb = new JButton("test");

jb.setBackground(Color.BLUE);

//-----定时器设置为0.2秒触发1次事件

t = new Timer(200, this);

this.setSize(200, 200);

this.getContentPane().add(jb);

this.setVisible(true);

//-----定时器开始运行

this.t.start();

}

public void actionPerformed(ActionEvent e) {

red += 5;

green += 10;

blue += 15;

red %= 255;

green %= 255;

blue %= 255;

//-----三种颜色按你所需搞个渐变的规则

this.jb.setBackground(new Color(red, green, blue));

this.jb.setVisible(true);

}

public static void main(String[] _s) {

TestA a = new TestA();

}

}

给你需要变色的元件挂个定时器。


分享文章:java颜色渐变的代码 颜色代码渐变色
标题URL:http://chengdu.cdxwcx.cn/article/hhjsho.html