我在SeekBar上贴了一背景图,这张图是295*33的,然后在480*272的机器上显示,显示前先把这张图装载到Bitmap,取得宽高也是295*33,然后我设置SeekBar的宽高也为295*33.
问题就来了,显示出来后发现是这张图片的左上部分拉升显示在295*33的区域中.也就是图片显示不全.
请问怎么能正常显示?
注意: 其它所有的图片都正常,比如别处一个progressbar和imagebutton上的图片都完全正常.

解决方案 »

  1.   

    android:layout_width="fill_parent" 
    android:layout_hight="fill_parent"
      

  2.   

    这个做法是肯定不对的,我要的是这个滑动条跟指定给这个滑动条的图片一样大.说明一下:densityDpi=160,即density=1
    代码如下:        LayoutInflater myInflater = LayoutInflater.from(this);
            seekBar = (SeekBar)myInflater.inflate(R.layout.seekbar, null).findViewById(R.id.seekbar);
            
            Bitmap bitmapSeekBack = BitmapFactory.decodeResource(getResources(),R.drawable.music_back);        //确定这个控件的大小和位置
            left = 151*nDisplayWidth/main.nDefaultWidth;
            top = 110*nDisplayHeight/main.nDefaultHeigh;
            width = bitmapSeekBack.getWidth();
            height = bitmapSeekBack.getHeight();        lpParam = new AbsoluteLayout.LayoutParams(width,height,left,top);
            abslayout.addView(seekBar, lpParam);XML定义如下:<?xml version="1.0" encoding="utf-8"?>
    <SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/seekbar"
    android:progressDrawable="@drawable/seekbar"  
    android:thumb="@drawable/thumb"
    />条形设置如下:(显示不正常)<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/music_back">
    </item>
        <item android:id="@android:id/progress"  android:drawable="@drawable/music_fore">
        </item>
    </layer-list>thumb设置如下:(显示正常)<?xml version="1.0" encoding="UTF-8"?>  
    <selector xmlns:android="http://schemas.android.com/apk/res/android">        
    <!-- 按下状态-->
    <item
    android:state_pressed="true"
    android:drawable="@drawable/playerslider_down"
    />

    <!-- 松开状态 -->
    <item
    android:state_pressed="false"
    android:drawable="@drawable/playerslider_up" 
    />
    </selector>
      

  3.   

    http://blog.csdn.net/ouyangtianhan/article/details/6571663
    这里有篇文章参考下
      

  4.   

    加个px或者加个dip试试,可能是px和dip不相等的原因。
      

  5.   

    还不是很明白你的意思 你说的背景图片是什么?seekbar 也就分为 thumb 和progress 两部分 
    如果按照你三楼的回复 是不是就像自带的那种seekbar 一样 两个是一样高的?
     我觉得和什么bitmap没有关系的
    你看看源码就知道 progress的maxheight应该是48,默认情况下是这样 如果thumb比progress 要高 那么progress 会在thumb的中间位置绘制出来 相反的话 就是thumb在progress的中间位置开始绘制 我说的中间都是垂直位置, 水平位置 都是从0 偏移量开始的你如果想改变这个绘制 你需要重写onSizeChanged 方法 还有onDraw()方法 这些都是AdsSeekbar 里面的
    指定你的maxheight 之类的 如果你确定你要的是我的意思 我到时给你参考代码 代码在公司电脑 不想再写一遍
      

  6.   

    我在Android版块发了三个贴子,都是基本问题,竟然没人能解决一个,我承认我做的东西有点偏门,主要是写代码,而不是XML,以致于做过好几年的同事也很难搞定,认为论坛上人多,大家集思广益总能解决,没想到呀,还是一个都没有解决.
      

  7.   

    我想问题你没有解决不能说是论坛上没有牛人,也不要说你做的东西太偏门 我有时还直接要用android源码 重写继承类 ,eclipse里面到处是报错,用android.mk放到 源码里编译,这算偏门吗,不是你的问题多难 而是你能不能描述的清晰一些?
      

  8.   

    三楼已经贴出了源码,问题再说一遍:android:drawable="@drawable/music_back的图片是295*33,屏幕密度是1,设置好了进度条显示在295*33的区域,且thumb高度也是33,但显示出来的结果是把music_back这张图片放大了后显示了一部分在295*33的区域.就是295*33的图片被放大成了,495*55或者其它尺寸,反正是放大了,因为进条设置的大小是图片大小,所以被放大的图片就显示不下了,但其它的按钮的图片都是正常大小,就这个进度条的图片被放大小.我们公司做了几年Android的同事说是Android系统的BUG,不支持我这样的写法,因为他们都是用XML配置控件,而我这里的布局是用代码写的.
      

  9.   

    你将图片放的包不对,请放入drawable-mdpi或是drawable-h各试一试或是都删除,就留一个取名drawable
      

  10.   

    我的图片是放在drawable中的,drawable-mdpi或是drawable-h都没有放这些图片.
      

  11.   

    你是试试啊,drawable三个文件夹里 都放置不同分辨率的图片.
      

  12.   

    发Android的贴子一共三个,未解决的也是三个.