安卓学习:通过按钮切换背景图片和图片说明

Android_UI_点击按钮切换背景效果实现 实现按钮按下和释放,按钮背景图片相应切换效果的方法这里介绍两种,一种是在代码里实现,另一种是在xml文件里实现 一、在xml文件里 首先现在layout的一个xml文件下定义Button如下所示: <Button android:id="@+id/btn_user_selected" android:layout_widt 阅读详情

要求:有背景音乐,按钮切换图片并带图片说明
效果:
在这里插入图片描述
实现:
创建raw目录,将音频文件放入raw目录
在这里插入图片描述

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/img1"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/btnLast"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="上一张"
            android:textSize="20sp" />

        <Button
            android:id="@+id/btnNext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:text="下一张"
            android:textSize="20sp" />
    </LinearLayout>

    <TextView
        android:id="@+id/tvCharacter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:text="图片1"
        android:textSize="30dp"
        android:textColor="#00FF00"/>

</LinearLayout>

ActivityMain.java

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private int[] imgIds;//图像资源标识符
    private int imgIndex;//图像索引,表示在图像资源标识符数组中的位置
    private LinearLayout root;//线性根布局
    private MediaPlayer mediaParser;//媒体播放器
    private static final int IMG_COUNT = 4;//图像总数
    private Button btnLast, btnNext;  //按钮控件
    private List<String> ls = new ArrayList<String>();
    private TextView tvCharacter;
    private int index;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //利用布局资源文件设置用户界面
        setContentView(R.layout.activity_main);
        //通过资源标识符获取控件实例
        root = findViewById(R.id.root);
        btnLast = findViewById(R.id.btnLast);
        btnNext = findViewById(R.id.btnNext);
        tvCharacter = findViewById(R.id.tvCharacter);

        //添加图片说明
        ls.add(0,"图片1");
        ls.add(1,"图片2");
        ls.add(2,"图片3");
        ls.add(3,"图片4");

        //音乐播放
        if (mediaParser == null) {
            //创建媒体播放器,指定播放源
            mediaParser = MediaPlayer.create(MainActivity.this, R.raw.music);
            //设置循环播放方式
            mediaParser.setLooping(true);
            //播放指定音频文件
            mediaParser.start();
        }

        //初始化图像标识符
        imgIds = new int[IMG_COUNT];
        for (int i = 0; i < IMG_COUNT; i++) {
            imgIds[i] = getResources().getIdentifier(
                    "img" + (i + 1),//标识符名称
                    "drawable",//定义类型
                    "net.lj.personal_images"//定义包名
            );
        }
        //上一张背景图片按钮
        btnLast.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (imgIndex >0) {
                    index=imgIndex--;
                    tvCharacter.setText(ls.get(index-1));
                } else {
                    imgIndex = IMG_COUNT - 1;
                    tvCharacter.setText(ls.get(imgIndex));
                }
                //刷新背景图片
                root.setBackgroundResource(imgIds[imgIndex]);
            }
        });
        //下一张背景图按钮
        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (imgIndex < IMG_COUNT - 1) {
                    index = imgIndex++;
                    tvCharacter.setText(ls.get(index+1));
                } else {
                    imgIndex = 0;
                    tvCharacter.setText(ls.get(0));
                }
                //刷新背景图片
                root.setBackgroundResource(imgIds[imgIndex]);
            }
        });
    }
}
计算机组成原理课设 计算机组成原理课程设计 阅读详情

相关推荐

1panel面板实战:Docker容器存储路径迁移与优化指南

本文详细介绍了在1panel面板中迁移Docker容器存储路径的完整流程与优化方法。针对系统盘空间不足的常见问题,通过停服务、搬数据、改配置三个核心步骤,指导用户安全地将Docker数据目录迁移至更大容量的独立分区,并提供了迁移后的深度管理技巧与常见避坑指南,帮助用户优化服务器存储资源。

ol789012的博客 865

Android 通过按钮实现桌面背景图片的切换

【代码】Android 通过按钮实现桌面背景图片的切换。

kdaxia的博客 1460

电子纸价签实战:基于SSD1680的墨水屏驱动开发与优化

本文详细介绍了基于SSD1680驱动芯片的电子纸价签开发实战,涵盖硬件连接、驱动框架搭建、核心流程解析及性能优化。重点剖析了初始化配置、波形文件加载、图像数据写入与刷新触发等关键步骤,并提供了功耗优化、显示效果提升及代码健壮性等实用避坑指南,帮助开发者高效实现稳定低功耗的墨水屏驱动。

weixin_28278377的博客 229

android在代码中为布局添加背景图片

mainLayout = (LinearLayout)findViewById(R.id.main_layout); mainLayout.setBackgroundResource(R.drawable.bg_main);

xingyunqi7的博客 1万+

学习海康VisionMaster之表面缺陷滤波

本文介绍了VisionMaster中表面缺陷滤波技术的应用。该技术通过数学变换抑制背景干扰、增强缺陷特征,适用于电池铝壳、垫圈/螺丝等无纹理背景的表面缺陷检测(划痕、凹坑、异物等)。操作流程包括:图像导入、轮廓定位、位置修正、参数设置(重点讲解滤波核尺寸/数量/标准差等关键参数的调整策略)。文章通过案例演示了如何通过多方向滤波响应识别表面划伤,并指出需结合blob分析进一步优化检测结果。该技术对工业质检具有实用价值,参数设置需结合缺陷特征与背景特性灵活调整。

yuhouxiyang的专栏 2828

【安全设备篇】HVV面试专题

还有就是这个可能是被访问的这个内网系统,本身业务系统存在业务逻辑问题,因为内网所布置的很多业务系统往往不会考虑一些安全性问题,比如在正常的业务逻辑请求中直接带了sql语句,就会触发设备规则产生告警,这一类是属于误报,然后会将此告警上报给研判人员,需要研判组专家和甲方客户确认下是否是该系统存在此业务逻辑问题,并且需要确认告警的源ip在此告警的时间段附近有没有进行操作过。天眼日志分析主要基于系统和应用程序的日志数据来识别安全威胁,而威胁感知则通过收集和分析多种来源的情报信息。理解威胁的性质和威胁背后的原理。

大河之犬的博客 7923

Android中的LinearLayout(线性布局)设置背景图片

今天又有一个需求,就是在线性布局中添加一张图片,并且这张图片不能是拉伸的,想了一下,如果是直接给LinearLayout添加背景图片的时候,若图片的大小小于背景的大小,图片肯定会被拉伸的,所以这个方案肯定是不行,因此,想到了另一个实现方式,就是最外边使用FrameLayout,利用FrameLayout的特点,所有放在FrameLayout中的布局都会重叠放置,所以我们先放置一个iamgeview,

Afanbaby的博客 2万+

VMware ESXi 系统里创建虚拟机,虚拟磁盘日志损坏,如何或者把数据备份?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1638

android 横竖屏切换壁纸背景

1、frameworks\base\core\res\res\drawable-nodpi 或者 drawable-sw600dp-nodpi 或者drawable-sw700dp-nodpi 添加default_wallpaper_1.jpg文件 2、frameworks\base\core\res\res\values\symbols.xml   ++添加--> 3、framewo

u010916467的专栏 2023

线结构光相机原理详解以及精度控制总结

摘要:线阵结构光相机是工业三维检测的核心设备,结合线阵相机的高分辨率与结构光的主动三维成像能力。其工作原理基于线激光投射、逐线扫描、亚像素级条纹提取及三角测量法实现三维重建。精度受硬件、校准、环境和算法四因素影响,需通过优化硬件选型(如小像元相机、窄线宽激光)、精准校准(相机内参、激光平面)、环境控制(遮光、隔振、恒温)及算法优化(Steger算法、点云后处理)来提升。典型应用(卷材、轨道检测)中深度精度可达5-20μm,需根据场景需求平衡参数配置。

start_up_go的博客 940

【2024年华为秋招-12月25日-第三题(300分)- PCB印刷电路板布线】(题目+思路+Java&C++&Python解析+在线测试)

在PCB印刷电路板设计中,器件之间的连线需要避免线路的阻抗值增大、而且赛件之间还有别的器件和别的干扰源,在布线时我们希望受到的干扰尽量小。现将电路板简化成一个M×N的矩阵,每个位置(单元格)的值表示其源干扰度。如果单元格的值为0,表示此位置没有干扰源;如果单元格的值为非0,则表示此位置是干扰源,其值为源干扰度。连线经过干扰源或干扰源附近会增加连线的总干扰度。位置Axy的干扰源的源干扰度为dd01、若连线经过位置Axy,则其总干扰度会增加d;2、若连线经过离位置A。

m0_73659489的博客 344

Android应用主题与横竖屏的切换

很多App,现在都具有了横竖屏切换的功能,或者说“白天”和“黑夜”主题的切换。 实现起来也非常简单。主要需要注意的是,在切换的同时,页面的数据不能丢失,不然给用户的体验就会大打折扣了。 横竖屏切换效果图: 当手机倒置的时候,屏幕会自动切换。并且不管怎么倒置,onCreate生命周期都只执行了1次。 现在看下布局代码吧,一共两个布局页面,互相切换。 lay...

diaodishui8923的博客 426

精读204页华为的流程管理(文末附下载链接)

链接:https://pan.baidu.com/s/1eEwdBR5c0PIxkOrNhDZcGg?pwd=wha2 提取码:wha2 复制这段内容后打开百度网盘手机App,操作更方便哦。,以提升企业运营效率和竞争力,同时解决了诸多业务痛点,为华为的全球化发展提供了有力支撑。华为的流程管理对其发展起着关键作用,通过构建完善的流程体系,提升了企业运营效率与竞争力。华为的流程管理在企业发展中至关重要,其围绕。,并通过流程变革不断优化。在流程管理过程中,强调。构建了全面的流程体系。

cdfunlove的博客 282

Android 开发笔记___图像按钮__imageButton

IMAGEBUTTON 其实派生自image view,而不是派生自button。,image view拥有的属性和方法,image button 统统拥有,只是imagebutton有个默认的按钮外观。 image button只能显示图形 imagebutton 上面的图片可按比例拉伸 只能在背景显示一张图形,但分别在前景和背景显示两张图片,实现图片叠加的效果 ...

weixin_30820151的博客 719

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android点击按钮弹出图片,用android做的一个简单的点击按钮显示图片的程序

其实,在这之前我已经做了一个点击按钮的小程序,只不过它只是用来在界面上显示一些文字或者是用一个对话框来显示内容。按理说,做显示图片应该是不会有太大的问题了,可是问题还是来了。在我把这些个问题解决之后,我总结出两点内容,应该值得我去注意。(1)在layout文件夹的一个xml文件里,应该使用FrameLayout的布局,同时还得用到ImageView,这点是不同于前面点击按钮只显示一些文字的,形如如...

weixin_42641998的博客 2106

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android更改按钮背景图的方法

final Button b = (Button)findViewById(R.id.main_t1); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { b.setBackgroundResource(R.drawable.butt2

bouquet12138的博客 1470

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android背景图片更换——经典例子

手机背景和电脑一样,也必要我们去更换图片。如果你觉得太单调,可以把它改成自己喜欢的图片,下面我们来看一下背景的图片更换程序,是如何编写的。我们先看一下图先 packagecom.smart.p_w_picpath;importandroid.app.Activity;importandroid.app.AlarmManager;importandr...

weixin_34221112的博客 975

Android Button/ImageButton点击时切换背景图片

1、java代码实现 ImageButton btn = (ImageButton)findViewById(R.id.imageButton1); btn.setOnTouchListener(new View.OnTouchListener(){ public boolean onTouch(View v, MotionEvent event) {

technologyleader的专栏 1954

android 点击按钮来回切换图片

android 点击切换图片 适合初学者,没什么好说的,很简单,不过方法我觉得挺精妙的。 1、添加图片 气死我了,选下面那个会报错 activity_main xml background是设置背景图片。 2、设置点击事件和创建Button控件 public class MainActivity extends AppCompatActivity { int i=1; @Override protected void onCreate(Bundle savedInsta

小黑的博客 1万+

Android点击按键改变按键背景图片-选择器

如下,点击drawable,点击new,再点击drawable resource file 如下,名字为btn的选择器selector,我在项目中改成了btnselector2 然后在下面输入这些代码 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked=

weixin_44911775的博客 1258

Android评分条控件RatingBar自定义背景颜色图片

默认的背景图片颜色是绿色的,看起来和项目颜色极不统一,所以需要自定义背景图片。   原理很简单,就是替换系统默认的三种图片。 替换方式是使用RatingBar的android:progressDrawable="@drawable/rating_yellow" 属性进行覆盖   其中@drawable/rating_yellow内容如下: Xml代码

Fenice 7133

android自动切换图片,android-自动切换背景图片

因为好用,所以值得收藏。》》》》》》》》》一、创建切换背景布局类public class LaunchAppAnimatedBgRelativeLayout extendsRelativeLayout {private Random random;private final float MAX_ALPHA = 1F;private final float MIN_ALPHA = 0F;pr...

weixin_30249953的博客 686

使用AndriodStudio制作音乐播放器之音乐播放界面(进度条正常播放、上、下曲切换)

效果图: 思路整理: 1.要实现上、下曲切换,进度条正常播放前提首先要把音乐资源导入播放器中; 2.获取音乐的时间长度get.length 3.用seekbar获取进度条,使用线程的方法配置进度条 4.碟片合成,获取音乐的专辑封面,和黑色碟片图片进行合成 重难点: 使用Thread和SeekBar实现进度条 1.音乐资源导入播放器中,实现上、下曲播放 在实体类定义属性,p

Freya1010的博客 6511

android怎么点击换图片,ImageButton单击切换按钮图片

有时单击ImageButton图片按钮时需要获取变换图片的效果,在这里介绍两种方法仅供参考正常显示点击切换方法一:通过给按钮配置XML文件来实现图片按钮的背景切换效果在layout或者是drawable文件下添加一个p_w_picpathbtn_select.xml文件其中的是指是否取得焦点,比如用户选择了一个文本框。再在main.xml文件中设置ImageButton属性,并引用上述文件作为图片...

weixin_39687542的博客 3571

android 点击按钮切换背景图片(根据按钮点击的ID切换)

前言 在开发应用程序的时候,需要根据一个按钮切换一个ImageView的背景,查看了网上的一些方法,很少有根据ID切换的,把它写出来,希望可以帮到大家 首先需要新建一个图片表,来存放你所有要用到的图片 private Button out,jia,jian; private ImageView xy_number; private static int id=0; //图片表 pri

狸墨羽痕的博客 7858

Android开发:点击按钮改变背景颜色或图片

Android开发:点击按钮改变背景颜色或图片布局文件(.xml)实现类(.java)补充:更改背景颜色的方法使用图片作为背景代码运行效果 布局文件(.xml) 使用线性布局,且需给线性布局命名,方便实现时调用。 布局中使用TextView告知用户使用内容或使用功能, 布局中放入两个按钮,更改按钮上的文字。让用户清楚明白按钮的作用。 <LinearLayout xmlns:android="...

weixin_43634775的博客 1万+
上一篇: 网格布局:计算器页面
下一篇: 安卓学习:水果页面2
doubleview
博客等级 码龄7年 12粉丝 48原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值