2011-01-28 17 views
6

私はthisチュートリアルを取っています。 thisイメージにあるように、標準灰色の枠線がギャラリーのすべての要素に適用されます。私はこのむしろ醜い境界線を削除したい、あるいは、実際には1 pxの境界線にしたい(または単に画像を区別できるようにする)。 私は、この行削除しようとした:ギャラリーの境界線のスタイルを変更します

imgView.setBackgroundResource(GalItemBg); 

境界線を削除しますが、その後、画像が重なって、それはまだ非常にきれいではありません。

境界線を変更するにはどうすればよいですか?そして、ギャラリー要素を互いに重ならないようにするにはどうすればよいですか?

答えて

11

あなたはすでにこの問題の回答を発見しているはずですが、投稿されていないので、今すぐここにあります!

RelativeLayoutの中にあるimgViewオブジェクトのそれぞれを、黒い背景と1つのパディングで置き換えることができます。 ImageView自体を返すのではなくImageViewを含むRelativeLayoutオブジェクトを返します。

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ImageView imgView = new ImageView(m_Context); 
    // do stuff initializing your imgView as before 
    RelativeLayout borderImg = new RelativeLayout(m_Context); 
    borderImg.setPadding(1,1,1,1); 
    borderImg.setBackgroundColor(0xff000000); 
    borderImg.addView(imgView); 
    return borderImg; 
} 

最後に、各Galleryオブジェクト間にスペースを入れてギャラリー法setSpacing(int pixels)を使用して、Gallery像の間隔を強制する方がはるかに簡単です。あなたはそれらの周りに黒い境界線を得ることはありませんが、Galleryの背景がそれらの間と後ろに見えるでしょう。

+0

これは、ビューにキャストすることを促すClassCastExceptionを与えます。 –

+0

コードを確認してください。このコードを正確に再テストしたところ、問題はありませんでした。このコードはギャラリーアダプタにあります。 –

+0

再確認していただきありがとうございます。私はまだ同じ問題があります。私はBaseAdapterを拡張しています...おそらくあなたはArrayAdapter を使って作業していますか? –

関連する問題