textview跟随seekbar的拖动改变位置

代码里面;

package com.example.seek;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity {
    private TextView textView;
    private SeekBar seekBar;
    private double width, fDensity;
    private int numbers = 0;

    private DisplayMetrics displaysMetrics;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         seekBar=(SeekBar) findViewById(R.id.seekBar1);
         textView=(TextView) findViewById(R.id.textView1);

        initView();

    }
    // 获取屏幕信息,以及初始化操作
    private void initView() {
        displaysMetrics = getResources().getDisplayMetrics();
        width = displaysMetrics.widthPixels;
        fDensity = (width - dip2px(this, 51)) / 100;
        seekBar = (SeekBar) findViewById(R.id.seekBar1);
        textView = (TextView) findViewById(R.id.textView1);
        initSeekBarProgress();
    }

    // TextView跟随SeekBar移动
    private void initSeekBarProgress() {
        seekBar.setProgress(numbers);
        seekBar.setOnSeekBarChangeListener(mSeekChange);
        LayoutParams paramsStrength = new LayoutParams(
                LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        paramsStrength.leftMargin = (int) (numbers * fDensity);
        textView.setLayoutParams(paramsStrength);
        textView.setText(numbers + "元");
    }

    private OnSeekBarChangeListener mSeekChange = new OnSeekBarChangeListener() {
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            numbers = progress;
            LayoutParams paramsStrength = new LayoutParams(
                    LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT);
            paramsStrength.leftMargin = (int) (progress * fDensity);
            textView.setLayoutParams(paramsStrength);
            textView.setText(numbers + "元");

        }

        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }

        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }
    };
    /**
     * 根据手机分辨率从 px(像素) 单位 转成 dp
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 根据手机分辨率从 dp 单位 转成 px(像素)
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

}

xml里面;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="83dp"
        android:text="TextView" />

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1" />

</RelativeLayout>
时间: 2024-11-03 22:42:57

textview跟随seekbar的拖动改变位置的相关文章

Android:图片中叠加文字,支持拖动改变位置

之所以做了这么一个Demo,是由于近期项目中有一个奇葩的需求:用户拍摄照片后,分享到微信的同一时候加入备注,想获取用户在微信的弹出框输入的内容.保存在自己的server上.而其实,这个内容程序是无法获取的,因此採取了一个折衷方案,将文字直接写在图片上. 首先上Demo效果图: 功能: 1.用户自由输入内容,可手动换行,而且行满也会自己主动换行. 2.可拖动改变图片中文本位置(文字不会超出图片区域). 3.点击"生成图片"button之后,生成一张带有文字的图片文件. 代码不多,直接所有

js实现图片拖动改变顺序

在web页面中,需要改变多个元素的位置,可以通过元素拖动来实现.HTML5中加入了一个全局属性draggable,通过设置true/false来控制元素是否可拖动. 下面以图片拖动为例,用jQuery来实现:页面上有多个图片,把一个图片拖动到其他两个图片中间,就可以将这个图片的位置插入到两图之间. <!DOCTYPE html> <html> <head> <style> .img-div img { width:200px; height:200px; f

设置textarea文本框不可以拖动改变大小

设置textarea文本框不可以拖动改变大小:在默认状态下,textarea文本框可以使用鼠标拖动调整大小,可能在某些情况下需要禁止此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <titl

IOS 开发笔记-基础 UI(3)按钮的使用(放大缩小、改变位置,首位式动画)和学习案例

UIKit框架提供了非常多的UI控件,但并不是每一个都很常用,有些控件可能1年内都用不上,有些控件天天用,比如UIButton.UILabel.UIImageView.UITableView等等,按钮控件是非常重要且比较基础的一个UI控件---UIButton,一般情况下,点击某个控件后,会做出相应反应的都是按钮,按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置. 案例: 功能分析 (1)左下角4个方向按钮,控制头像按钮的位置 (2)右下角分别是放大.缩小按钮,控制

textView设置按下和焦点改变时让字体颜色发生变化

在res/color/text_color_selector.xml这个下编写: <?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color

无边框对话框拖动改变大小的实现总结

相同是项目遇到的问题,要求是无边框的对话框要实现鼠标的拖动改变大小.无边框对话框跟有边框的实现肯定不一样喽. 我上网搜到一种方法是: 须要处理下面这三个消息: WM_NCHITTEST  WM_SETCURSOR  WM_NCLBUTTONDOWN  消息处理函数: UINT CXXXDlg::OnNcHitTest(UINT nHitTest, CPoint point) { CRect rect; GetWindowRect(&rect); if(point.x <= rect.left

jQuery实现鼠标拖动改变Div高度

最近项目中需要在DashBoard页面做一个事件通知栏,该通知栏固定位于页面底部,鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做页面美化,可以根据需求做相应修改. 直接上代码 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quo

鼠标拖动改变层的大小

<html><head><title>拖动改变层的大小</title><meta content="text/html; charset=gb2312" http-equiv="Content-Type"><style> {box-sizing: border-box; moz-box-sizing: border-box}#testDiv { background-color: buttonf

为什么有时候人们用translate来改变位置而不是定位?

translate()是transform的一个值. 改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)(复合是什么,我也不懂,没听说过,有知道的朋友可以在留言区告诉我). transform使浏览器为元素创建一个 GPU 图层 translate改变位置时,元素依然会占据其原始空间 而改变绝对定位会触发重新布局,进而触发重绘和复合. 改变绝对定位会使用到 CPU. 因此translate()更高效,可以