当前位置:首页 » 安卓系统 » android动态设置背景

android动态设置背景

发布时间: 2023-04-27 01:45:13

A. android怎么动态设置背景颜色

可以用selector。
<selector xmlns:android="http://">
<item
android:state_pressed="true"
android:background="@drawable/pressed"
/>
<item
android:state_selected="false"春漏
android:state_focused="false"
android:state_pressed="false"
android:background="@drawable/unselected"扒正烂
/>
</selector>
具体用法清冲google一下。

B. android中怎么实现动态设置背景图片的功能,我在网上搜到的只能设置到当前的页面,并不能实现设置到全部

当关闭重新运行,它又会自动跳回原始的背景图片。

在开发过程中,由于使用模拟器测试了程序,在首次运行后会将res文件夹下的图片资源文件(如drawable-hdpi、drawable-ldpi和drawable-mdpi)拷贝到bin文件夹下。在替换资源图片后,eclipse并不清楚是否有图片改变,所以会使用原来bin下的res文件夹中的资源文件进行打包,而图片用的还是第一次eclipse所拷贝进去的文件,所以当运行程序后会发现替换资源图片在程序中没起作用。

解决办法:每次运行前,清理项目


动态设置背景图片代码

privateinti=0;//全局变量定义,初始化

//list数组接收到从文件中读取到的数据

List<String>list=readTxt.getDierguanResource();

//changeBack这个函数用来动态设置背景图片

publicvoidchangeBack(intbackground){

main=(LinearLayout)findViewById(R.id.shizi);

Stringa=list.get(background);

//获取到的背景图片名as(图片存到res/drawable文件下)

Stringas=a.split("")[1];

//动态获取图片getResources().getIdentifier(as,"drawable",getPackageName())

intresID=getResources().getIdentifier(as,"drawable",getPackageName());

//设置页面背景setBackgroundResource()

main.setBackgroundResource(resID);

}

if(i>=0&&i<list.size()){


changeBack(i);

}

C. android设置背景图片

教你如何设置背景图片
xml文件设置背景图片中:
任意一个控件,button imageView 或layout,在其的xml属性设置中,添加

[java] view plain
android:background="@drawable/bg"

即可实现设置其背景图片为bg.
其中bg.bnp图片存放在drawable目录下。
drawable目录下存放大小图标共用的图片。drawable-hdpi中存放240 WVGA800 的模拟器或板子用的图片。drawable-mdpi存放对应的小图片

[java] view plain
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic"/>

同样,用src属性,也可设置imageView的图片为pic.png

java代码中设置或更改一个控件的背景图片:

[java] view plain
Resources resources = getContext().getResources();
Drawable btnDrawable = resources.getDrawable(R.drawable.layout_bg);
layout.setBackgroundDrawable(btnDrawable);

程序中,动态修改layout的背景图片,用setBackgroundDrawable()函数实现。设置其背景图片为 layout_bg.png

修改imageView1的背景图片为imageView2的背景图片:
imageView2.getDrawable()可获得图片2的背景。值为Drawable类型
imageView1.setImageDrawable(drawable); 设置imageView1的背景图片

即:

[java] view plain
imageView1.setImageDrawable(imageView2.getDrawable());

D. Android开发,动态设置Activity的layout背景图片问题

Bitmap img = BitmapFactory.decodeFile(BackgroundPath);

执行这行代码的时候,抛出的异常,估计是报内存溢出
原因很简单,Bitmap 是用字节来代码像素点的
如果你的图片非常大,那么android需要创建一个非常大的数组来生成bitmap对象
这时候就会抛出异常
建议你创建Bitmap前,先测试一下图片的大小,把图片的大小压缩成屏蔽的大小
再用来做layout的Background

E. android动态背景图片改变

Button setIcon;
boolean isIconChange = true;
//-----------------------------------------------
setIcon.setBackgroundResource(R.drawable.bg1); //setIcon定义为全局
isIconChange = false;//定义为全局
setIcon.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

if(isIconChange){
setIcon.setBackgroundResource(R.drawable.bg1);
isIconChange = false;
}else{
setIcon.setBackgroundResource(R.drawable.bg2);
isIconChange = true;
}
}
});

就行了 ,不用放在xml里面。

F. android 实现动态背景 用gif好么

1、下载安装AnimGIF Live Wallpaper,值得注意的是,安装成功之后,在应用程序列表是无法找到它的图标,找到方式看下图: 2、进入AnimGIF Live Wallpaper,点击左下方的设置按钮,选择“Set GIF Image”按钮即进入文件目录浏览,找到需要设置为壁纸的GIF动图,点击设置壁纸即可。 注意事项: 1、GIF动图体积不要过大,尽量不要超过1M,否则会出现卡顿、掉帧等播放问题; 2、设置动图为壁纸后,会导致耗电量的增加。

G. android 动态设置按钮背景的渐变颜色

在一个xml文件中定义需要用到gradient,然后用drawable设置,大致是这样

H. 如何通过代码动态改变android的窗口背景颜色

Android修改背景,边框等代码如下:

<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android">

<!--圆角-->
<corners
android:radius="9dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:bottomRightRadius="2dp"/><!--设置圆角半径御答-->

<!--渐变-->
<gradient
野拆袜android:startColor="@android:color/white"
android:centerColor="@android:color/black"
颂激android:endColor="@android:color/black"
android:useLevel="true"
android:angle="45"
android:type="radial"
android:centerX="0"
android:centerY="0"
android:gradientRadius="90"/>

<!--间隔-->
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp"/><!--各方向的间隔-->

<!--大小-->
<size
android:width="50dp"
android:height="50dp"/><!--宽度和高度-->

<!--填充-->
<solid
android:color="@android:color/white"/><!--填充的颜色-->

<!--描边-->
<stroke
android:width="2dp"
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp"/>

</shape>

I. android studio 怎样让app背景图为动态的

方法/步骤
1
首先打开软件,看看现在的背景是什么样子,如图默认是windows主题

2
在菜单栏中的file栏下选择“settings”,并找到外观“appearance”。

3
修改主题“theme”,软件自带三种可选主题。

4
主题一:Darcula,就是当今最流行的背景主题

5
主题二:Intellij,灰白系列,相比第三个windows主题更好看一些,但个人还是觉得Darcula最好。

6
确定好主题后,选择“restart”重启软件。就可以看到这亮丽的背景,顿时觉得高大上了有木有。

J. android怎样动态设置toolbar背景

首先使用 Toolbar 来代替ActionBar
,这样我们就能够把ActionBar嵌入到我们的View体系中,然后我们"禁用"系统的status bar,由 DrawerLayout
来处理status bar,最后抽屉部分往上移,或者裁剪掉status bar那一部分。
控制Status bar
在你的values-v21里面添加新的主题,并设置一下属性:
values-v21/themes.xml
<style name="AppTheme">
<item name="android:">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>

这里解释一下:

,将它设置为true,系统将在你的window里面绘制status
bar,默认为 TRUE
,之所以要写出来是因为你的theme有可能是继承过来的,确保为true。(在这里小插曲一下,因调试时,总以为注释了这段代码就以为是false,程
序员思维害苦了我。另外从命名来看,Android把它称为system bar,可能是为了与能被我们处理的status bar区分开而做的改变。)
statusBarColor 设置为透明是因为我们不再需要系统的status bar,因为我们无法控制它的位置,后面我们将交由 DrawerLayout 来处理。
使用DrawerLayout
首先,你的布局文件应该是和这个类似的:
<android.support.v4.widget.DrawerLayout
xmlns:android="url"
android:id="@+id/my_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Your normal content view -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- We use a Toolbar so that our drawer can be displayed
in front of the action bar -->
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
<!-- The rest of your content view -->
</LinearLayout>
<!-- The navigation drawer -->
<ScrimInsetsFrameLayout xmlns:android="rul"
xmlns:app="url"
android:layout_width="304dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="@android:color/white"
android:elevation="10dp"
android:fitsSystemWindows="true"
app:insetForeground="#4000">
<!-- Your drawer content -->
</ScrimInsetsFrameLayout>
</android.support.v4.widget.DrawerLayout>


在这里布局里面我们用到了一个的开源类 ScrimInsetsFrameLayout ,它的主要作用就是利用 fitsSystemWindows
的回调方法 fitSystemWindows(Rect insets) 来获取status bar的大小,然后调整画布已达到去掉status
bar的效果,所以我们需要在ScrimInsetsFrameLayout 下设置 fitsSystemWindows
为true。当然你也可以不使用这个类,而改用 layout_marginTop 属性来达到效果。
insetForeground 这个属性是ScrimInsetsFrameLayout自带的,表示插入区域的前景色,我们设置为带透明的黑色#4000。别忘了使用这个属性需要添加如下代码到attrs.xml里:
values/attrs.xml
<declare-styleable name="ScrimInsetsView">
<attr name="insetForeground" format="reference|color" />
</declare-styleable>


自此,我们已经实现了将DrawerLayout抽屉的那一部分显示在 Toolbar 和systembar(为了和下面的status
bar区分,我们称为system bar)之间了,可是system bar的颜色被我们设置了透明,所以我们接下来要改变status
bar的颜色。
改变Status bar的颜色
你可能已经注意到刚才的布局里面 DrawerLayout 的 fitsSystemWindows 属性设置了为true,这是因为我们要在代码里面使用了 DrawerLayout 设置status bar颜色的方法:
// 在这里我们获取了主题暗色,并设置了status bar的颜色
TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValue, true);
int color = typedValue.data;
// 注意setStatusBarBackgroundColor方法需要你将fitsSystemWindows设置为true才会生效
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.my_drawer_layout);
drawerLayout.setStatusBarBackgroundColor(color);

使用ToolBar来代替ActionBar

在代码里面这样设置:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

热点内容
mysql属于什么数据库 发布:2025-07-12 13:55:52 浏览:166
源码抓捕 发布:2025-07-12 13:47:34 浏览:873
安卓哪里有李小龙 发布:2025-07-12 13:31:49 浏览:439
苹果保存账号密码在哪里找 发布:2025-07-12 13:31:07 浏览:99
东北大学c语言考试题 发布:2025-07-12 13:26:40 浏览:756
sha256在线加密 发布:2025-07-12 13:19:06 浏览:228
vbnet创建数据库连接 发布:2025-07-12 13:15:34 浏览:233
为什么社保卡在社康还要密码 发布:2025-07-12 13:11:42 浏览:812
取随机数php 发布:2025-07-12 12:58:16 浏览:841
如何配置组合音响 发布:2025-07-12 12:53:54 浏览:94