android动态背景
A. 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);
}
B. android 实现动态背景 用gif好么
1、下载安装AnimGIF Live Wallpaper,值得注意的是,安装成功之后,在应用程序列表是无法找到它的图标,找到方式看下图: 2、进入AnimGIF Live Wallpaper,点击左下方的设置按钮,选择“Set GIF Image”按钮即进入文件目录浏览,找到需要设置为壁纸的GIF动图,点击设置壁纸即可。 注意事项: 1、GIF动图体积不要过大,尽量不要超过1M,否则会出现卡顿、掉帧等播放问题; 2、设置动图为壁纸后,会导致耗电量的增加。
C. 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);
D. android studio 怎样让app背景图为动态的
方法/步骤
1
首先打开软件,看看现在的背景是什么样子,如图默认是windows主题
2
在菜单栏中的file栏下选择“settings”,并找到外观“appearance”。
3
修改主题“theme”,软件自带三种可选主题。
4
主题一:Darcula,就是当今最流行的背景主题
5
主题二:Intellij,灰白系列,相比第三个windows主题更好看一些,但个人还是觉得Darcula最好。
6
确定好主题后,选择“restart”重启软件。就可以看到这亮丽的背景,顿时觉得高大上了有木有。
E. android设置linearlayout布局的背景颜色,怎么动态改变背景颜色
1、开始打开Android IDE,这里以常用的Android Studio软件的3.2版本为例,然后可以新建一个工程项目,也可以使用当前已经存在的工程,点击后等待整个项目加载完毕再进行后续的操作。
F. android手机要如何提取动态壁纸的背景图
我系统说一下:
打开re管理器——SYSTEM——app——找到你那个程序名——长按打开菜单——提取全部内容——选择“是”
然后会提示你在SD卡里有个同名的文件夹,打开就可以慢慢找到了
G. android控件背景颜色动态随机渐变
这个你只能使用shape来完成。因为是点击后随机变,不能使用xml写死的那种,你得用java代码来生成和配置GradientDrawable,设置不同的color.如果不会用,可以参照:
H. Android/如何读取相册将选择的图动态设置为应用背景
Bitmap bitmap = BitmapFactory.decodeFile(String path);
linearlayout.setBackground(new BitmapDrawable(bitmap));
I. android LinearLayout 动态设置背景图片
代码如下:
LinearLayouttemp=(LinearLayout)findViewById(R.id.LinearLayout的id);
Drawabled=Drawable.createFromPath(图片路径);
temp.setBackgroundDrawable(d);
J. 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里面。