2015-02-25 5 views
1

Я пытаюсь подкрасить изображение влево наполовину оранжевым, справа с темно-бордовым цветом. Я написал свой код, но всякий раз, когда я пробовал, он возвращался просто сплошным оранжевым и темно-бордовым цветом. Так вот что я пытаюсь сделать.Изображение оттенка для Android с 2-мя разными цветами

Я хочу, чтобы подкрасить левый и правый с оранжевым и темно-бордовый с хорошим количеством, так что будет как

Success

This is my image that is failed

Как это, шахта не работает, как на примере. Вот мой код.

public Bitmap toHokie(Bitmap bmpOriginal) { 
    int width, height; 

    Bitmap bmOut = Bitmap.createBitmap(bmpOriginal.getWidth(), 
      bmpOriginal.getHeight(), bmpOriginal.getConfig()); 
    height = bmOut.getHeight(); 
    width = bmOut.getWidth(); 
    int orangeFilter = new Color().rgb(255, 165, 0); 
    int maroonFilter = new Color().rgb(139, 0, 0); 
    for (int j = 0; j < height - 1; j++) { 
     for (int i = 0; i < width/2 - 1; i++) { 
      int newColor = (int) ((double) (bmOut.getPixel(i, j) * 0.3) + ((double) (orangeFilter * 0.7))); 

      bmOut.setPixel(i, j, newColor); 
     } 
    } 

    for (int j = 0; j < height - 1; j++) { 
     for (int i = width/2; i < width - 1; i++) { 
      double newColor = (bmOut.getPixel(i, j) * 0.3 + maroonFilter * 0.7); 
      bmOut.setPixel(i, j, (int) newColor); 
     } 
    } 
    return bmOut; 
} 

На самом деле, для моей второй попытки, теперь лучше, чем раньше, но все-таки это проводная ... как этот

I guess something is working....

Я фиксированной, как это.

public Bitmap toHokie(Bitmap bmpOriginal) { 
    int width, height; 

    Bitmap bmOut = Bitmap.createBitmap(bmpOriginal.getWidth(), 
      bmpOriginal.getHeight(), bmpOriginal.getConfig()); 
    height = bmOut.getHeight(); 
    width = bmOut.getWidth(); 
    int orangeFilter = new Color().rgb(255, 165, 0); 
    int maroonFilter = new Color().rgb(139, 0, 0); 
    for (int j = 0; j < height - 1; j++) { 
     for (int i = 0; i < width/2 - 1; i++) { 
      int newColor = (int) ((bmpOriginal.getPixel(i, j) * 0.7) + ((orangeFilter * 0.3))); 

      bmOut.setPixel(i, j, newColor); 
     } 
    } 

    for (int j = 0; j < height - 1; j++) { 
     for (int i = width/2; i < width - 1; i++) { 
      double newColor = (bmpOriginal.getPixel(i, j) * 0.3 + maroonFilter * 0.7); 
      bmOut.setPixel(i, j, (int) newColor); 
     } 
    } 
    return bmOut; 
} 
+0

Добавить цвета, а затем добавить свойство альфа им, что должен это сделать, я считаться. –

+0

Ищете то же самое, получили ли вы решение? если да, можете ли вы разместить его в качестве ответа, у вас будет шанс схватить несколько очков, потому что многие люди ищут это (см. просмотр более 100 раз) –

ответ

0

это 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" > 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="320dp" 
    android:layout_height="320dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:src="@drawable/sachin_bg1" /> 

<LinearLayout 
    android:layout_width="320dp" 
    android:layout_height="320dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:orientation="horizontal" 
    android:weightSum="1" > 

    <LinearLayout 
     android:id="@+id/layout1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="0.5" 
     android:background="#4a8cd5" 
     android:orientation="horizontal" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/layout2" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="top" 
     android:layout_weight="0.5" 
     android:background="#f21616" 
     android:orientation="horizontal" > 
    </LinearLayout> 
</LinearLayout> 

использовать этот код в методе OnCreate

LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1); 
    Drawable background1 = layout1.getBackground(); 
    background1.setAlpha(100); 

    LinearLayout layout2 = (LinearLayout) findViewById(R.id.layout2); 
    Drawable background2 = layout2.getBackground(); 
    background2.setAlpha(100); 
Смежные вопросы