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

如何使用java设置LinearLayout背景为渐变色,第1张

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

第一是使用背景图片,就是给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为渐变起点颜色。

上述代码效果如下:

import java.awt.BorderLayout

import java.awt.FlowLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.Color

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JPanel

import javax.swing.JTextField

public class RGB extends JFrame implements ActionListener{

JTextField t1,t2,t3

JLabel b1,b2,b3

JButton jb

JPanel jp

public RGB(){

super("RGB")

jp=new JPanel()

b1=new JLabel("R")

b2=new JLabel("G")

b3=new JLabel("B")

t1=new JTextField(3)

t2=new JTextField(3)

t3=new JTextField(3)

jb=new JButton("确定")

jb.addActionListener(this)

jp.add(b1)

jp.add(t1)

jp.add(b2)

jp.add(t2)

jp.add(b3)

jp.add(t3)

jp.add(jb)

jp.setLayout(new FlowLayout())

add(jp,BorderLayout.CENTER)

setSize(200,200)

setResizable(false)

setDefaultCloseOperation(this.DISPOSE_ON_CLOSE)

setVisible(true)

}

public void actionPerformed(ActionEvent e){

if(e.getSource().getClass().getSimpleName().equals("JButton")){

int r=Integer.parseInt(t1.getText())

int g=Integer.parseInt(t2.getText())

int b=Integer.parseInt(t3.getText())

if(r>=0 &&r<=255 &&g>=0 &&g<=255 &&b>=0 &&b<=255){

Color c=new Color(r,g,b)

jp.setBackground(c)

}else{

System.out.println("请输入(0-255)的整数!")

}

}

}

public static void main(String[] args) {

new RGB()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12110783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存